11.07.2015 Aufrufe

Praktikum Medizinische Bildverarbeitung in C# ... - Bernd Radig

Praktikum Medizinische Bildverarbeitung in C# ... - Bernd Radig

Praktikum Medizinische Bildverarbeitung in C# ... - Bernd Radig

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Aufgabe 9<strong>Mediz<strong>in</strong>ische</strong> Bilddaten werden <strong>in</strong> der Regel nicht im BMP- oder JPEG-Formatgespeichert, weil diese zusätzliche Informationen wie „Name des Patienten“, „Datum derAufnahme“ ... enthalten können, die von den e<strong>in</strong>fachen Bildformaten nicht unterstützt werden.Es existieren deshalb eigene Formate, von denen DICOM-3 (Digital Imag<strong>in</strong>g andCOmmunications <strong>in</strong> Medic<strong>in</strong>e <strong>in</strong> der dritten Version des Formats) der Standard ist.Auf den WWW-Seiten www9.<strong>in</strong>.tum.de/praktika/praktCSharpMedBV.WS05/ f<strong>in</strong>denSie den Quellcode zu e<strong>in</strong>er Klasse DicomStream, welche die Funktionalität zumLesen von Bilddaten aus DICOM-Dateien bereitstellt, sowie e<strong>in</strong>ige Testbilder imDICOM-Format.Fügen Sie DicomStream zu Ihrem Projekt h<strong>in</strong>zu und nützen Sie die bereitgestellteFunktionalität zum Aufbau e<strong>in</strong>er Bitmap aus den Bilddaten e<strong>in</strong>er DICOM-Datei, stattder Erzeugung aus e<strong>in</strong>er JPEG-Datei.Die Dokumentation des Quellcodes von DicomStream zeigt Ihnen, wie es geht.Wie kann man e<strong>in</strong>en Pixel <strong>in</strong> der Bitmap mit e<strong>in</strong>em Grauwert setzen?Mit der Methode SetPixel() der Klasse Bitmap können Sie e<strong>in</strong>zelnen Pixeln Ihrer Bitmap e<strong>in</strong>e Farbeals Objekt der Klasse Color zuweisen. Color verwendet die übliche RGB-Darstellung von Farben,bei der Rot-, Grün und Blauanteile der Farben durch jeweils e<strong>in</strong> Byte gespeichert werden.Mit Hilfe der Methode Color.FromARGB(red,green,blue) können Sie e<strong>in</strong>e Farbe aus RGB-Wertenerzeugen. Wenn alle drei Farbanteile gleich s<strong>in</strong>d, entsteht e<strong>in</strong>e Graustufe.FromArgb() ist dabei e<strong>in</strong>e statische Methode der Klasse Color, man braucht deshalb ke<strong>in</strong> Objektdafür. Es reicht die Angabe der Klasse, damit der Compiler auch die richtige Methode f<strong>in</strong>det:Color me<strong>in</strong>eFarbe = Color.FromArgb(i,i,i);Aufgabe 10Die Verwendung der Klasse Bitmap als Bildklasse ist ungünstig, weil wir im Verlauf des<strong>Praktikum</strong>s Bilder mit weiteren Informationen, wie z.B. der Bildauflösung speichern wollen.Daneben benötigen wir auch e<strong>in</strong>en schnelleren Zugang zu den Bilddaten als er überSetPixel() oder GetPixel() möglich wäre.In dieser Aufgabe wird deshalb e<strong>in</strong>e eigene Klasse für Bilder entwickelt, welche diebisher verwendete Bitmap-Klasse <strong>in</strong>nerhalb des <strong>Praktikum</strong>-Programms ersetzen wird.Fügen Sie Ihrem Projekt e<strong>in</strong>e neue Klasse DicomImage h<strong>in</strong>zu, die folgendeFunktionalität bereitstellt:• Das Bild wird als zweidimensionales Array mit Elementen vom Typ bytegespeichert. byte[,] data; ist z.B. e<strong>in</strong> derartiges Array.• Die Größe des Bildes kann über die Properties Width und Height ermitteltwerden.• Es gibt e<strong>in</strong>en Konstruktor DicomImage(str<strong>in</strong>g filename), der unterVerwendung der Klasse DicomStream e<strong>in</strong> DICOM-Bild aus e<strong>in</strong>er Dateiausliest.• Wir benötigen zusätzlich e<strong>in</strong>e weitere Methode Bitmap GetBitmap(), die dasBild als e<strong>in</strong>e Bitmap zurückliefert, die wir dann wieder mit Hilfe derMethoden des .NET-Frameworks darstellen können.Seite 3 von 4

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!