Volumsvisualisierung

by Barbara Fritsch und Martin Reiterer

Die Volumsvisualisierung stellt eine der drei fundamentalen S�ulen der wissenschaftlichen Visualisierung dar. Vor allem durch die immer leistungsf�higer und schneller werdende Hardware gewinnt sie zunehmends in der Echtzeit-Visualisierung medizinischer Datens�tze an Bedeutung. Im Bereich der Medizin ist es dem Arzt somit unmittelbar nach der Erhebung der volumetrischen Patientendaten m�glich, diese in einer visuellen und interaktiven Art auszuwerten. Die Erhebung der Daten erfolgt dabei meist mittels computed tomography oder magnet resonanz tomography.

Unsere Aufgabe war es deshalb im Rahmen der Labor�bung zu Visualisierung (WS 2007/08) eine entsprechende Anwendung zur Volumsvisualisierung zu erstellen. Hauptziel hierbei war vor allem die Anwendung von einschl�gigen Verfahren der Computergraphik, welche sich in der Praxis bereits zur Volumsvisualisierung sehr gut geschlagen haben.

Implementiert wurden deshalb sowohl 2D, als auch 3D Verfahren zur Visualisierung der mittels CT gewonnenen und somit auf einem regelm��igen Grid aufgetragenen Patientendaten.

  1. Slicing
    Verfahren im 2D-Raum. Hierbei werden die Dichtedaten (3D) schichtenweise durchgegangen und farbcodiert (Farbcodes k�nnen �ber eine Transferfunktion festgelegt werden) angezeigt. Dies ist ein schon alt bewehrtes Verfahren, bei dem der Arzt praktisch die R�ntgenbilder der einzelnen Schichtaufnahmen �durchbl�ttert�.

  2. ray casting
    Hierunter versteht man ein leistungsf�higes Verfahren zur Rekonstruktion von Volumsdaten in 3D-Modelle. F�r viele Zwecke ist dies eine effizientere Darstellungsform, da der allgemeine Zusammenhang (Focus+Context Prinzip) erhalten bleibt. Meist ist der Arzt nicht direkt an den einzelnen Schichtbildern interessiert, sondern an der Darstellung und selektiven Hervorhebung von Gewebeschichten. Hierf�r ist Ray-Casting ein ideales Werkzeug!

Im nachfolgenden finden Sie eine Beschreibung/Dokumentation der von uns entwickelten Anwendung.

User Interface

Unser Ziel war es die Benutzeroberfl�che (Abbildung 1) so spontan und intuitiv wie m�glich zu halten. Deshalb haben wir uns entschieden nur die am h�ufigsten ben�tigten Steuerelemente im Hauptinterface zu platzieren. Alle erweiterten und funktionsspezifischen Einstellungsm�glichkeiten haben wir daher in eigene Sub-Fenster ausgegliedert.

Abbildung 1 zeigt unser Hauptinterface. Der obere Bereich dient hierbei rein als Anzeigefl�che f�r die gerenderten volumetrischen Daten. Im unteren Bereich des Fensters befinden sich die Navigations- und Einstellungsm�glichkeiten, durch die eine einfache und intuitive Bedienung m�glich gemacht werden soll.


(Abbildung 1)



Standardm��ig startet unsere Anwendung im bereits oben beschriebenen Slicing-Modus. Hierbei kann der Benutzer die Volumsdaten mit dem Translations-Steuerelement �a� schichtenweise durchiterieren. Weiters lassen sich f�r den Slicing-Modus wichtige Parameter wie Slicinggeschwindigkeit �b� und Slicingrichtung �c� �ber das Benutzerinterface ver�ndern.
Slicinggeschwindigkeit: Die Slicinggeschwindigkeit legt dabei fest, wie schnell durch die einzelnen Schichten (R�ntgenbilder) navigiert werden soll. Sprich hiermit kann die Sensibilit�t des Translations-Steuerelementes �a� beeinflu�t werden.
Slicingrichtung: Diese legt die Seite fest, von welcher aus orthogonal durch die Volumsdaten navigiert werden soll.

Eine weitere wichtige Einstellungsm�glichkeit ist die verwendete Interpolationsart (�d�). Hierbei k�nnen folgende Einstellungen getroffen werden:

  1. Nearest Neighbour
    Hier erfolgt praktisch die einfachste Art der Interpolation. Sie zieht f�r einen Dichtewert die n�chstliegende Farbcodierung heran. Dadurch entstehen harte �berg�nge zwischen den einzelnen Regionen. Abbildung 2 zeigt ein Beispielbild f�r Nearest Neighbour Interpolation.

    (Abbildung 2)
  2. Lineare Interpolation
    Die Lineare Interpolation hingegen schafft kontinuierliche �berg�nge zwischen den einzelnen Regionen. Ein Dichtewert wird dabei mit einer linearen Gewichtung der beiden n�chstliegenden Farbwerte der Transferfunktion farbkodiert. Abbildung 3 zeigt ein Beispielbild f�r Lineare Interpolation.

    (Abbildung 3)
  3. Gradientenbild
    Das Gradientenbild ist eher wenig aussagekr�ftig und hebt (nur im 2D wirklich gut ersichtlich) die �berg�nge zwischen den einzelnen Dichtewerten hervor. Abbildung 4 zeigt Slicing mit dem Gradientenbild.

    (Abbildung 4)


Wie bereits erw�hnt, haben wir s�mtliche erweiterten funktionsspezifischen Einstellungsm�glichkeiten in speziellen Dialogen zusammengefa�t. Somit gibt es ein eigene Einstellungsdialoge f�r:

  1. Transferfunktion
    S�mtliche Einstellungen der Transferfunktion lassen sich �ber den Transferfunktionsdialog �ndern. Dieser �ffnet sich durch Bet�tigung der Schaltfl�che Transfer Func. (�e�) im Hauptinterface. Wie in Abbildung 5 ersichtlich befindet sich im oberen Teil des Transferfunktionsdialoges ein Histogramm des aktuell geladenen Volumsdatensatzes, mit dessen Hilfe das Auffinden von Gewebetypen f�r spezifischen Dichtewerten erleichtert werden soll. Durch einfaches Klicken im Histogramm mit der linken Maustaste k�nnen neue St�tzstellen f�r die Transferfunktion definiert werden. Standardm��ig besitzt die neu eingef�gt St�tzstelle eine schwarze Farbcodierung. M�chte man die Farbzuordnungen �ndern, so mu� man lediglich die Maus �ber den jeweiligen Punk im Histogramm bewegen, um ihn als �aktiv� zu markieren. Im unteren Abschnitt des Transferfunktionsdialoges l��t sich nun die Farbzuordnung der �aktiven� St�tzstelle �ndern. Abbildung 4 zeigt eine Illustration des Transferfunktionsdialoges:


    (Abbildung 5)
  2. Beleuchtung
    Im Beleuchtungsdialog lassen sich s�mtliche f�r die Standardlichtquelle relevanten Einstellungen �ndern. Unser Konzept beruht darauf, dass unsere gerenderte �Szene� von einer Lichtquelle bestrahlt wird, dessen ausgestrahltes Licht sich aus den folgenden Komponenten zusammensetzt:

    Ambient Light: konstante Hintergrundbeleuchtung (diese ist �berall auf dem Objekt gleichm��ig stark).
    Diffuse Light: Simuliert das durch die Position der Lichtquelle abh�ngige Shading. Dadurch werden Unebenheiten der Oberfl�che f�r den Betrachter sichtbar. Hierdurch werden die einzelnen geometrischen Feinstrukturen auf einer homogenen Oberfl�che, wie z.B. am Sch�delknochen, hervorgehoben.
    Specular Light: Hier wird der Glanz (Glanzpunkt) der Oberfl�che simuliert! Weiters kann den Cosinusexponent f�r die breite des Lichtkegels einstellen

    Au�erdem l��t sich im Beleuchtungsdialog die Position der Lichtquelle leicht ver�ndern.


    (Abbildung 6)

Bevor wir nun zu den f�r das RayCasting wichtigen Einstellungen vordringen, wollen wir beschreiben wie man �berhaupt einen Datensatz in die Anwendung laden kann. Hierf�r kann man entweder das Programm direkt mittels Angabe eines Parameters, welcher den Dateinamen spezifiziert, starten oder den Datensatz aus der Benutzeroberfl�che laden.

�bergabeparameter: Der mittels folgendem �bergabeparameter spezifizierte Datensatz, wird sofort beim Start der Anwendung geladen.


-datafile "URL"

Datensatz �ber Benutzeroberfl�che laden: Hierf�r muss sich der zu ladende Datensatz im Unterordner �./dat/�, welcher im selben Verzeichnis wie die Ausf�hrbare Datei liegen mu�, befinden. S�mtliche Datens�tze aus diesem Verzeichnis, lassen sich jederzeit �ber die Combobox (�f�) in das Programm laden.

Wie kommt man nun zu einer sch�nen dreidimensionalen Visualisierung der angegebenen Volumsdaten? Ganz einfach, man mu� lediglich den Programm-Modus, mittels der Kontrollbox �enable volume rendering� (�g�) von Slicing auf auf Volume-Rendering �ndern. In diesem Modus kann man nun folgende RayCasting spezifischen Parameter festlegen (bzw. zeigt erst jetzt eine �nderung dieser Parameter �h-i� Wirkung):

  1. step ray casting
    dieser Parameter legt die Anzahl der Samples pro Lichtstrahl, welcher von einem Pixel aus durch die Szene geschossen wird, fest.

  2. rotate
    Dies ist wohl eines der f�r Volume-Rendering wichtigsten Steuerelemente. Durch Drehen des Rotate-Balles, kann der geladene Datensatz gedreht werden.

  3. render type
    Unter der Optionsgruppe Render-Type ("h"), kann vom Benutzer die f�r den aktuellen Verwendungszweck relevante Ray-Casting Variante ausgew�hlt werden. Hierf�r kann er aus folgenden Optionen w�hlen:

    • Compositing: Die in der Transferfunktion festgelegten Farbwerte, werden ihrer Opacity entsprechend aufakkumuliert.
    • ISO-Surfaces: Diese Option entspricht praktisch dem first hit Prinzip. Es wird jene ISO-Oberfl�che gerendert, welche dem (in "i") definierten ISO-Wert widerspiegelt. N�here Einstellungsm�glichkeiten hierzu k�nnen unter der im Folgenden beschriebenen Option (iso value) vorgenommen werden.
    • maximum intensity: Es werden jene Farbwerte gerendert, welche das Maximum der vorkommenden Gewebsdichte widerspiegeln.


  4. iso value
    Diese Option dient der n�heren Konfiguration f�r Ray-Casting von ISO-Surfaces. Hier kann festgelegt werden, welche Dichtewerte zur Extrahierung der ISO-Oberfl�chen herangezogen werden.