
V našem posledním příspěvku jsme vám ukázali, jak vytvořit a uložit DICOM soubor v C# pomocí Aspose.Medical for .NET. Dalším krokem je programově přečíst uložený DICOM soubor v C#. V tomto blogovém příspěvku se naučíte, jak načíst, otevřít a číst DICOM soubory pomocí C#. Tento průvodce můžete použít jako výchozí bod k vytvoření vlastní aplikace pro prohlížení DCM souborů.
Tento článek se zabývá následujícími tématy:
- Aspose.Medical—DCM prohlížeč souborů
- Jak číst soubor DICOM pomocí C#
- Prozkoumat zdarma dostupné zdroje
Aspose.Medical—DCM prohlížeč souborů
Pro načítání, čtení a zobrazení DICOM souborů použijeme Aspose.Medical for .NET.Poskytuje API přívětivé pro vývojáře, které umožňuje číst, analyzovat a snadno extrahovat DICOM data. Objekt Dataset
uvnitř třídy DicomFile
API usnadňuje práci s lékařskými metadaty.
Předtím, než začneme, zajistěte následující:
- Stáhněte si SDK z releases nebo nainstalujte balíček pomocí NuGet správce balíčků pomocí následujícího příkazu:
Install-Package Aspose.Medical
- Už máte uložený DICOM soubor (např. sample.dcm) z předchozího tutoriálu.
Jak číst soubor DICOM: Podrobný průvodce
Načtěte soubor DICOM
Můžete načíst soubor .dcm
do objektu DicomFile
a přistupovat k jeho datovému souboru, jak je ukázáno níže:
// Load an existing DICOM file
DicomFile dicomFile = new DicomFile("sample.dcm");
Aspose.Medical.Dicom.Dataset dataset = dicomFile.Dataset;
Čtení hodnot z DICOM souboru
Jakmile je soubor načten, můžete přistupovat k klíčovým metadatům pomocí DICOM tagů:
string patientName = dataset.GetSingleValue<string>(Tag.PatientName);
Console.WriteLine($"Patient Name: {patientName}");
Můžete tímto způsobem přečíst stovky DICOM tagů v závislosti na tom, jaké informace potřebujete.
Přístup k datům pixelů
Pokud chcete načíst data obrázku z DICOM souboru, použijte:
byte[] pixelData = dataset.GetValues<byte>(Tag.PixelData).ToArray(); // Use ToArray() for display
Console.WriteLine($"Pixel Data Length: {pixelData.Length} bytes");
Můžete použít toto pole bajtů k vykreslení obrázku nebo jej použít v dalších zpracovatelských algoritmech.
Získání výchozí hodnoty, pokud je tag chybějící
Když jsou tagy volitelné, možná budete chtít poskytnout hodnoty jako zálohu. Použijte GetSingleValueOrDefault, abyste získali data nebo vrátili výchozí hodnotu, pokud tag chybí.
string institutionName = dataset.GetSingleValueOrDefault<string>(Tag.InstitutionName, "Unknown");
Console.WriteLine("Institution Name: " + institutionName);
Tohoto je ideální pro scénáře, kde je přítomnost tagu nepředvídatelná.
Získání specifické hodnoty z vícehodnotového tagu
Pokud tag obsahuje více hodnot, ale potřebujete pouze jednu, použijte GetValue s indexovým nebo rozsahovým výrazem.
double imagePositionX = dataset.GetValue<double>(Tag.ImagePositionPatient, ^1);
Console.WriteLine("First Image Position X: " + imagePositionX);
Poznámka: Tato metoda vyvolá výjimku, pokud chybí značka.
DCM File Viewer: Complete Code
Zde je kompletní funkční kód, který ukazuje, jak načíst soubor DICOM a přečíst dostupné informace o znacích:
// Načtěte uložený soubor DICOM.
Aspose.Medical.Dicom.DicomFile dicomFile = DicomFile.Open("sample.dcm");
Aspose.Medical.Dicom.Dataset dataset = dicomFile.Dataset;
// Přečtěte si informace týkající se pacienta
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);
// Přečtěte si informace o studii
string studyDateStr = dataset.GetSingleValue<string>(Tag.StudyDate);
DateTime studyDate = DateTime.ParseExact(studyDateStr, "yyyyMMdd", null);
string studyID = dataset.GetSingleValue<string>(Tag.StudyID);
// Přečíst metadata obrázku
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
Vyzkoušejte to sami
Můžete použít jakýkoli soubor .dcm
, ať už byl vygenerován pomocí Aspose, nebo přijat z zobrazovacího zařízení. Jednoduše načtěte soubor a přečtěte značky, a máte hotovo.
Získejte bezplatnou licenci
Můžete get a free temporary license k prozkoumání plné funkčnosti Aspose.Medical for .NET bez jakýchkoli omezení. Je to rychlé, snadné a trvá to jen minutu.
DICOM prohlížeč souborů: Bezplatné zdroje
Můžete vylepšit svou vývojovou zkušenost s těmito cennými zdroji:
Závěr
V tomto článku jsme viděli, jak číst a extrahovat data z DICOM souboru v C#. Jako vývojář můžete použít Aspose.Medical for .NET, abyste pracovali se soubory DICOM (.dcm) a vytvořili svou vlastní aplikaci pro prohlížení DCM souborů.
Pokud máte otázky nebo narazíte na problémy při práci se soubory DICOM, neváhejte se zeptat na fórech Aspose.Podpora je vždy připravena pomoci.