
Bizim son yazımızda, size Aspose.Medical kullanarak C#‘da bir DICOM dosyası nasıl oluşturulup kaydedileceğini gösterdik. Bir sonraki adım, kaydedilen DICOM dosyasını C#‘da programlı olarak okumaktır. Bu blog yazısında, DICOM dosyalarını C# kullanarak nasıl yükleyeceğinizi, açacağınızı ve okuyacağınızı öğreneceksiniz. Bu kılavuzu kendi DCM dosya görüntüleyici uygulamanızı oluşturmak için bir başlangıç noktası olarak kullanabilirsiniz.
Bu makale aşağıdaki konuları kapsamaktadır:
- Aspose.Medical—DCM Dosya Görüntüleyici
- DICOM dosyasını C# kullanarak nasıl okunur
- Ücretsiz Kaynakları Keşfedin
Aspose.Medical—DCM Dosya Görüntüleyici
DICOM dosyalarını yüklemek, okumak ve görüntülemek için Aspose.Medical for .NET kullanacağız. Bu, DICOM verilerini zahmetsizce okumak, analiz etmek ve çıkarmak için geliştirici dostu bir API sunar. API’nin DicomFile sınıfındaki Dataset nesnesi, tıbbi meta verilerle çalışmayı kolaylaştırır.
Başlamadan önce, aşağıdakileri sağladığınızdan emin olun:
- SDK’yı releases adresinden indirin veya aşağıdaki komutu kullanarak NuGet Paket Yöneticisi aracılığıyla paketi kurun:
Install-Package Aspose.Medical
- Zaten önceki eğitimden kaydedilmiş bir DICOM dosyanız var (örneğin, sample.dcm).
DICOM Dosyasını Okuma: Adım Adım Kılavuz
DICOM Dosyasını Yükle
.dcm dosyasını bir DicomFile nesnesine yükleyebilir ve veri kümesine aşağıda gösterildiği gibi erişebilirsiniz:
// Load an existing DICOM file
DicomFile dicomFile = new DicomFile("sample.dcm");
Aspose.Medical.Dicom.Dataset dataset = dicomFile.Dataset;
Bir DICOM Dosyasından Değerleri Okuma
Dosya yüklendikten sonra, DICOM etiketlerini kullanarak ana meta verilerine erişebilirsiniz:
string patientName = dataset.GetSingleValue<string>(Tag.PatientName);
Console.WriteLine($"Patient Name: {patientName}");
Bu şekilde ihtiyacınıza göre yüzlerce DICOM etiketi okuyabilirsiniz.
Erişim Piksel Verisi
DICOM dosyasından görüntü verilerini almak istiyorsanız, şunu kullanın:
byte[] pixelData = dataset.GetValues<byte>(Tag.PixelData).ToArray(); // Use ToArray() for display
Console.WriteLine($"Pixel Data Length: {pixelData.Length} bytes");
Bu bayt dizisini görüntüyü oluşturmak veya daha fazla işleme algoritmalarına beslemek için kullanabilirsiniz.
Bir Etiket Eksikse Varsayılan Değeri Alma
Etiketler isteğe bağlı olduğunda, yedek değerler sağlamayı düşünebilirsiniz. Verileri almak veya etiket yoksa bir varsayılan değeri döndürmek için GetSingleValueOrDefault kullanın.
string institutionName = dataset.GetSingleValueOrDefault<string>(Tag.InstitutionName, "Unknown");
Console.WriteLine("Institution Name: " + institutionName);
Bu, etiket varlığının öngörülemediği senaryolar için idealdir.
Çok Değerli Bir Etiketten Belirli Bir Değer Alma
Eğer bir etiket birden fazla değer içeriyorsa, ancak yalnızca birine ihtiyacınız varsa, bir indeks veya aralık ifadesi ile GetValue kullanın.
double imagePositionX = dataset.GetValue<double>(Tag.ImagePositionPatient, ^1);
Console.WriteLine("First Image Position X: " + imagePositionX);
Not: Bu yöntem, etiket eksikse bir istisna fırlatacaktır.
DCM Dosya Görüntüleyici: Tam Kod
Burada bir DICOM dosyasını nasıl yükleyeceğinizi ve mevcut etiket bilgilerini nasıl okuyacağınızı gösteren tamamlanmış bir çalışma kodu bulunmaktadır:
// Kaydedilmiş DICOM dosyasını yükle
Aspose.Medical.Dicom.DicomFile dicomFile = DicomFile.Open("sample.dcm");
Aspose.Medical.Dicom.Dataset dataset = dicomFile.Dataset;
// Hasta ile ilgili bilgileri okuyun
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);
// Çalışma bilgilerini okuyun
string studyDateStr = dataset.GetSingleValue<string>(Tag.StudyDate);
DateTime studyDate = DateTime.ParseExact(studyDateStr, "yyyyMMdd", null);
string studyID = dataset.GetSingleValue<string>(Tag.StudyID);
// Görüntü meta verilerini oku
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
// Display information
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
Denemek için kendin yap
Herhangi bir .dcm dosyasını, Aspose kullanılarak oluşturulmuş veya bir görüntüleme aygıtından alınmış olsun, kullanabilirsiniz. Dosyayı yükleyin ve etiketleri okuyun, hepsi bu kadar.
Ücretsiz Lisans Alın
Ücretli sınırlama olmaksızın Aspose.Medical for .NET’in tam işlevselliğini keşfetmek için ücretsiz geçici bir lisans alabilirsiniz.Hızlı, kolaydır ve sadece bir dakikanızı alır.
DICOM Dosya Görüntüleyici: Ücretsiz Kaynaklar
Geliştirme deneyiminizi bu değerli kaynaklarla geliştirebilirsiniz:
Sonuç
Bu yazıda, bir DICOM dosyasını C# ile nasıl okunup veri çıkarılacağını gördük. Bir geliştirici olarak, DICOM (.dcm) dosyaları ile çalışmak ve kendi DCM dosyası görüntüleyici uygulamanızı oluşturmak için Aspose.Medical for .NET`i kullanabilirsiniz.
Eğer DICOM dosyalarıyla çalışırken sorularınız varsa veya sorunlarla karşılaşırsanız, Aspose Forumlarında sorun sormaktan çekinmeyin. Destek ekibi her zaman yardımcı olmaya hazırdır.