
우리의 지난 게시물에서는 C#에서 Aspose.Medical for .NET을 사용하여 DICOM 파일을 생성하고 저장하는 방법을 보여드렸습니다. 다음 단계는 C#에서 저장된 DICOM 파일을 프로그래밍 방식으로 읽는 것입니다. 이 블로그 게시물에서는 C#을 사용하여 DICOM 파일을 로드하고 열고 읽는 방법을 배우게 됩니다. 이 가이드를 사용하여 자신의 DCM 파일 뷰어 애플리케이션을 만드는 출발점으로 삼을 수 있습니다.
이 기사는 다음 주제를 다룹니다:
Aspose.Medical—DCM 파일 뷰어
DICOM 파일을 로드하고 읽고 보는 데는 Aspose.Medical for .NET을 사용할 것입니다. 이 API는 DICOM 데이터를 쉽게 읽고, 분석하고, 추출할 수 있는 개발자 친화적인 API를 제공합니다. API의 DicomFile
클래스 내의 Dataset
객체는 의료 메타데이터를 쉽게 다룰 수 있게 해줍니다.
우리가 시작하기 전에 다음 사항을 반드시 확인하세요:
Install-Package Aspose.Medical
- 이전 튜토리얼에서 저장된 DICOM 파일(예: sample.dcm)이 이미 있습니다.
DICOM 파일 읽는 방법: 단계별 가이드
DICOM 파일 로드
.dcm
파일을 DicomFile
객체에 로드하고 그 데이터셋에 접근할 수 있습니다. 아래와 같이 시연합니다:
// Load an existing DICOM file
DicomFile dicomFile = new DicomFile("sample.dcm");
Aspose.Medical.Dicom.Dataset dataset = dicomFile.Dataset;
DICOM 파일에서 값 읽기
파일이 로드되면 DICOM 태그를 사용하여 주요 메타데이터에 접근할 수 있습니다:
string patientName = dataset.GetSingleValue<string>(Tag.PatientName);
Console.WriteLine($"Patient Name: {patientName}");
이렇게 하면 필요한 정보에 따라 수백 개의 DICOM 태그를 읽을 수 있습니다.
픽셀 데이터 접근
DICOM 파일에서 이미지 데이터를 가져오려면 다음을 사용하세요:
byte[] pixelData = dataset.GetValues<byte>(Tag.PixelData).ToArray(); // Use ToArray() for display
Console.WriteLine($"Pixel Data Length: {pixelData.Length} bytes");
이 바이트 배열을 사용하여 이미지를 렌더링하거나 추가 처리 알고리즘에 입력할 수 있습니다.
태그가 누락된 경우 기본값 검색
태그가 선택 사항일 때, 대체 값을 제공하고 싶을 수 있습니다. GetSingleValueOrDefault를 사용하여 데이터를 검색하거나 태그가 없으면 기본값을 반환하십시오.
string institutionName = dataset.GetSingleValueOrDefault<string>(Tag.InstitutionName, "Unknown");
Console.WriteLine("Institution Name: " + institutionName);
이것은 태그의 존재가 예측할 수 없는 시나리오에 이상적입니다.
다중 값 태그에서 특정 값 검색하기
태그에 여러 값이 포함되어 있지만 하나만 필요한 경우, 인덱스 또는 범위 표현식과 함께 GetValue를 사용하세요.
double imagePositionX = dataset.GetValue<double>(Tag.ImagePositionPatient, ^1);
Console.WriteLine("First Image Position X: " + imagePositionX);
주의: 이 방법은 태그가 누락된 경우 예외를 발생시킵니다.
DCM 파일 뷰어: 완전 코드
여기 DICOM 파일을 로드하고 사용 가능한 태그 정보를 읽는 방법을 보여주는 완전한 작동 코드가 있습니다:
// 저장된 DICOM 파일을 불러오세요.
Aspose.Medical.Dicom.DicomFile dicomFile = DicomFile.Open("sample.dcm");
Aspose.Medical.Dicom.Dataset dataset = dicomFile.Dataset;
// 환자 관련 정보 읽기
string patientID = dataset.GetSingleValue<string>(Tag.PatientID);
string patientName = dataset.GetSingleValue<string>(Tag.PatientName);
string birthDateStr = dataset.GetSingleValue<string>(Tag.PatientBirthDate);
DateTime birthDate = DateTime.ParseExact(birthDateStr, "yyyyMMdd", null);
// 연구 정보 읽기
string studyDateStr = dataset.GetSingleValue<string>(Tag.StudyDate);
DateTime studyDate = DateTime.ParseExact(studyDateStr, "yyyyMMdd", null);
string studyID = dataset.GetSingleValue<string>(Tag.StudyID);
// 이미지 메타데이터 읽기
int rows = dataset.GetSingleValue<int>(Tag.Rows);
int columns = dataset.GetSingleValue<int>(Tag.Columns);
int bitsAllocated = dataset.GetSingleValue<int>(Tag.BitsAllocated);
string modality = dataset.GetSingleValue<string>(Tag.Modality);
byte[] pixelData = dataset.GetValues<byte>(Tag.PixelData).ToArray(); // Use ToArray() for display
// 정보 표시
Console.WriteLine($"Patient ID: {patientID}");
Console.WriteLine($"Patient Name: {patientName}");
Console.WriteLine($"Birth Date: {birthDate:yyyy-MM-dd}");
Console.WriteLine($"Study Date: {studyDate:yyyy-MM-dd}");
Console.WriteLine($"Study ID: {studyID}");
Console.WriteLine($"Image Rows: {rows}");
Console.WriteLine($"Image Columns: {columns}");
Console.WriteLine($"Bits Allocated: {bitsAllocated}");
Console.WriteLine($"Modality: {modality}");
Console.WriteLine($"Pixel Data Length: {pixelData.Length} bytes");
Output
Patient ID: JD123456
Patient Name: John Doe
Birth Date: 1985-07-20
Study Date: 2025-07-07
Study ID: Study001
Image Rows: 256
Image Columns: 256
Bits Allocated: 8
Modality: OT
Pixel Data Length: 65536 bytes
Try it Yourself
어떤 .dcm
파일도 사용할 수 있습니다. Aspose를 사용하여 생성된 것이든 이미징 장치에서 받은 것이든 상관없습니다. 파일을 로드하고 태그를 읽기만 하면 준비가 완료됩니다.
무료 라이센스 받기
귀하는 Aspose.Medical for .NET의 전체 기능을 제한 없이 탐색하기 위해 무료 임시 라이선스를 받으실 수 있습니다.쉽고 빠르며 단 1분이면 됩니다.
DICOM 파일 뷰어: 무료 리소스
이 유용한 리ソ스들을 통해 개발 경험을 향상할 수 있습니다:
결론
이 기사에서는 C#에서 DICOM 파일을 읽고 데이터를 추출하는 방법을 살펴보았습니다. 개발자로서 Aspose.Medical for .NET을 사용하여 DICOM (.dcm) 파일로 작업하고 나만의 DCM 파일 뷰어 애플리케이션을 구축할 수 있습니다.
DICOM 파일 작업 중 질문이 있거나 문제가 발생하면 주저하지 말고 ask on the Aspose Forums 에 문의하세요. 지원팀이 항상 도와드릴 준비가 되어 있습니다.