VisExercises

VIS Exercise #01

Visualisierung Übungsblatt #01


Medical 3D Data: CT vs. MR



Aufgabe 1: Präliminarien:
Installieren Sie DCMTK und ITK. Laden Sie Sich weiterhin die Übungsdaten herunter:

svn checkout https://svn.code.sf.net/p/vis-framework/code/trunk/data vis-data

Aufgabe 2: CT- und MR-Daten:
Blättern Sie nun mit dem Tool pvminfo und pvmplay des VVV in der Schnittbilddarstellung eines CT- und eines MR-Datensatzes! Verwenden Sie z.B. den CT-Head und den MRI-Head im PVM Format. Alternativ können auch die Datensätze der Volume Library verwendet werden. Welche generellen Unterschiede können Sie bzgl. der Darstellung der beiden Modalitäten CT und MR feststellen?

Aufgabe 3: CT- und MR-Daten im QtV3:
Laden Sie die beiden CT- und MR-Datensätze jeweils per Drag&Drop in den QtV3 Volume Renderer des VVV! Vergleichen Sie die beiden Datensätze bzgl. der Darstellungsqualität. Protokollieren Sie Ihr Ergebnis in Form von Screenshots.

Aufgabe 4: Dicom-Daten im QtV3:
Laden Sie die Dicom Serie des Angio/ Verzeichnisses per Drag&Drop in den QtV3!


Aufgabe 5: ITK und QtV3:
Implementieren Sie mit ITK einen Threshold Filter:

  1. Starten Sie mit dem Quelltext itk.cxx.
  2. Übersetzen Sie den Quelltext so wie hier beschrieben.
  3. Der übersetzte Quelltext lädt eine Dicom Serie in eine ITK Filter-Pipeline und speichert das Ergebnis wieder als Dicom Serie im Pfad “out” ab. Dazu muss vorher der Pfad der zu ladenden Serie als zusätzliches Kommandozeilenargument angegeben werden (z.B. “./itk vis-data/Angio/”).
  4. Erweitern Sie die bereits vorhandene Filter-Pipeline um einen weiteren Filterknoten, der eine Threshold- bzw. Schwellwertoperation durchführt.
  5. Dazu gehen Sie wie folgt vor:
    1. Instantiieren Sie einen Threshold-Filterknoten
    2. Legen Sie dessen Arbeitsparameter bzw. Schwellwerte fest
    3. Verknüpfen jeweils den Eingang des Threshold-Filters mit dem Ausgang des Readers und den Eingang des Writers mit dem Ausgang des Threshold-Filters
    4. Ziehen Sie schließlich am Ende der gesamten Kette, d.h. rufen Sie die Update-Funktion am Writer auf
  1. Verwenden Sie drei verschiedene Schwellwerte von z.B. 50, 100 und 200 und laden Sie die Ergebnis-Serie per Drag&Drop in den QtV3. Hat sich die Darstellung dadurch generell verbessert?
  2. Dokumentieren Sie die Situation vorher und nachher im Protokoll.


Hausaufgaben:

  1. Welcher Schwellwert brachte das beste Ergebnis?
  2. Welcher Wert wäre der beste denkbare Schwellwert zur Maskierung von Luft, Wasser und Fett? Kann man diesen automatisch berechnen?
  3. Welcher Wert wäre der beste denkbare Schwellwert zur Maskierung der Arterien? Kann man diesen automatisch berechnen?
  4. Welcher Wert wäre der beste denkbare Schwellwert zur Maskierung einer einzelnen Niere? Kann man diesen automatisch berechnen?
  5. Wie würden Sie zur Maskierung von Luft vorgehen, wenn Sie ein Histogramm zur Verfügung hätten?
  6. Wie würden Sie vorgehen, wenn Sie ein Histogramm selber berechnen müssten?

Options: