Volumens-Visualisierung

Überblick

Die Programmoberfläche lässt sich in die Bereiche Menü, Visualisierungsfenster, Bedienelemente und Transfer-Editor (dem ein eigener Abschnitt zur Verfügung steht) gliedern.

Oberfläche

Menü

Primär wird hauptsächlich der Menüpunkt Load zum Laden von Volumsdaten wichtig sein. Es öffnet sich ein Dialog zur Auswahl einer Datei.

Menü

Neben der Möglichkeit, das Programm zu beenden (Exit) stehen noch Funktionen für den Transfer-Editor zur Verfügung.

Visualisierungsfenster

Das Visualisierungsfenster oberhalb des Splitters im rechten Bereich stellt die Volumensdaten abhängig vom gewählten Visualisierungsmoduses grafisch dar.

Visualisierung

In den verschiedenen Visualisierungsmodi wird über unterschiedlichen Mechanismen dafür Sorge getragen, dass das Objekt immer bildfüllend und im passenden Seiten-Höhenverhältnis dargestellt wird. Im Volume-Modus kann der Blickpunkt mittels Ziehen und Gedrückthalten der Maus verändert werden; eine Rotation um das Objekt ist möglich. Außerdem wird in diesem Modus aufgrund der höheren Berechnungszeiten ein progressiver Ansatz zur Bildberechnung verfolgt, sodass sich die Qualität der Visualisierung bei jeglichen Änderungen sukzessive verbessert.

Bedienelemente

Die Bedienelemente befinden sich oberhalb des Splitters im linken Bereich. Die Combobox dient zur Auswahl des Visualisierungsmoduses (Slice, Volume). Darunter können weitere Elemente speziell für den jeweiligen Visualisierungsmodus ausgemacht werden. Alle Bedienelemente verfügen als schnelle Hilfestellung über Tooltips.

Bedienelemente

Slice-Mode

Im Slice-Mode dienen die Elemente innerhalb der Slices-Box der Bedienung. Die Optionsfelder xz, yz und xy bestimmen die Art des achsenparallelen Schnitts. Daneben kann mittels eines Sliders der Schnitt entlang der verbliebenen dritten Achse verschoben werden. Schließlich ist die Interpolation-Combobox zur Bestimmung der Interpolationsart für Schnittebenen zwischen den Datenwerten vorgesehen. Nearest Neighbour und bilineare Interpolation sind möglich.

Slice-Mode

Volume-Mode

Über die Optionsfelder kann die gewünschte Visualisierung im Volume-Modus angewählt werden. Die Interpolation zwischen den Datenwerten entlang der ausgeschickten Blickstrahlen durch das Objekt wird durch die Interpolations-Combobox bestimmt. Andere Konfigurationsmöglichkeiten sind vom Darstellungs-Modus abhängig.

Volume-Mode

Kombinationsformen

Average

Dieser Modus erstellt Röntgen-ähnliche Bilder, der Durchschnittswert eines jeden Blickstrahls durch das Objekt wird dargestellt.

Maximum Intensity

Hier werden entlang der Blickstrahlen jene Werte visualisiert, die einen maximalen Datenwert (Dichte) aufweisen.

First Hit

Die vom Betrachter kommenden Sehstrahlen gelangen hier so weit, bis ein rechts durch den Slider einstellbarer Dichtewert erreicht oder überschritten wird. Hier kann zusätzlich eine Schattierungsart angewählt werden. Der Farbwert wird dann nicht alleinig durch den Datenwert bestimmt.

Levoy

Hier kommen auch die Opazitätswerte des Transfer-Editors zum Einsatz. Damit ist eine Beziehung zwischen Datenwerten und Transparenz definierbar. Der Sinneseindruck an einem Punkt entsteht, indem die Farb- und Opazitätswerte entlang eines Blickstrahl durch das Objekt aufgerechnet werden. Die Berechnung kann durch den sich rechts befindenden Sliders ab einer gewissen erreichten Rechentiefe, die durch die Gesamtopazität gegeben ist, gekürzt werden. Auch hier stehen die Schattierungsmöglichkeiten zur Verfügung.

Schattierungsarten

In den Modi First Hit und Levoy kann die Farbgebung eines jeden Punktes noch durch Schattierung erweitert werden.

Unshaded

Im unschattierten sowie im Average und Maximum Intensity-Modus sorgen allein die Einstellungen im Transfer-Editors für die Farbgebung abhängig vom in Frage kommenden Dichtewert.

Depth Shading

Hier geht der Tiefenabstand zusätzlich in die Farbgebung ein: Farben weiter hinten liegender Punkte werden schwächer.

Phong Shading

Ein Beleuchtungsmodell sorgt bei Phong-Schattierung für höheren Realismus, das Hintergrund- und diffuses Licht beachtet sowie Highlight-Effekte nachbildet.

Transfer-Editor

Der Editor für die Transferfunktion findet sich unterhalb des Splitters im unteren Fensterbereich und ist selbst zweigeteilt: Im oberen Teil befindet sich ein Histogramm sowie die Transferfunktion für die Transparenz bzw. Opazität. Der Farbbalken unten bestimmt die Transferfunktion für die Einfärbung. In beiden Teilen findet man entlang der horizontalen Achse den Wertebereich der Volumsdaten ganz links beginnend mit dem kleinsten Wert (0).

Transfer-Editor

Histogramm

Im Histogramm bedeuten höhere (graue) Spitzen höhere Häufigkeit des entsprechenden Wertes in den Volumsdaten.

Opazität

Der schwarze Linienzug stellt die erwähnte Transferfunktion für Opazität dar, wobei die vertikale Achse die Transparenz bestimmt: Im obersten Bereich ist 100% Opazität erreicht. Diese Funktion wird punktweise definiert und erstreckt sich immer zwingend vom kleinsten bis zum größten Wert der Volumsdaten. Aus diesem Grunde kann bei den vordefinierten beiden Punkte ganz links bzw. ganz rechts nur die Opazität geändert werden, ein Verschieben entlang der Werte-Achse sowie ein Löschen ist nicht möglich ist. Zwischen den Punkten wird bilineare Interpolation betrieben. Neue Punkte können eingefügt werden, indem man innerhalb des Bereichs des Histogramms die primäre Maustaste drückt. Befindet sich allerdings bereits ein Punkt an der durch den Maus-Cursor definierten Volumsdaten-Wert, wird dieser aus Gründen der Wahrung der Stetigkeit editiert und kann somit solange die Maustaste gedrückt bleibt in beiden Dimensionen (Opazität, Daten-Wert, sofern es sich nicht um einen der beiden vordefinierten Punkte am Rand des Wertebereichs handelt) verschoben werden. Es muss also zum Editieren ein existierender Punkt nicht genau getroffen werden, auch wenn das natürlich leichter gelingt. Gelöscht wird ein Punkt, indem er einfach aus dem Histogrammbereich hinausgezogen und die Maustaste losgelassen wird. Gelingt dies nicht, handelt es sich wieder um einen der beiden vordefinierten Punkte am Wertebereich-Rand. Für diese drei Funktionen ist jeweils ein passendes optisches Feedback vorhanden, wobei aber während dem Gedrückthalten der Maustaste nicht die Kurve angepasst wird, sondern nur der bearbeitete Punkt zusätzlich an der momentan aktuellen Position eingeblendet wird. Erst nach Abschluss des Editiervorganges (Loslassen der Maustaste) aktualisiert sich die Kurve und wirkt sich auf die Visualisierung aus.

Farbe

Ganz ähnlich lässt sich der Farbverlauf editieren. Die Pfeilspitzen kennzeichnen die definierten Punkte, wobei sich wieder ganz links sowie ganz rechts jeweils ein vordefinierter Punkt befinden, die nur Farbeditierung zulassen. Der Farbbereich wird durch Interpolation der drei Farbkanäle für Rot, Grün und Blau bestimmt. Entlang des kleinen Bereichs zwischen Histogramm und Farbverlauf können Punkte analog zum oben genannten eingefügt, editiert und (beim Verlassen dieses Bereichs) wieder gelöscht werden. Die Farbe eines Punktes selbst bestimmt man durch Doppelklick, wobei sich ein Editierfenster zur Farbauswahl öffnet. Neu eingefügte Punkte erhalten automatisch die Farbe, die durch den Farbverlauf an der aktuellen Position gegeben ist.

Dateioperationen

Schließlich können diese umfangreichen Einstellmöglichkeiten in Dateien exportiert und importiert werden. Dazu befinden sich im File-Menü jeweils zwei Menüpunkte (Import Transfer Data, Export Transfer Data), ein Zurücksetzen auf die minimale Default-Konfiguration ist ebenso über einen eigenen Menüeintrag (Reset Transfer Data) möglich.

Beispielbilder

Average, Trilineare Interpolation
Average, Trilineare Interpolation

Maximum Intensity, Trilineare Interpolation
Maximum Intensity, Trilineare Interpolation

Levoy, Trilineare Interpolation, ohne Schattierung
Levoy, Trilineare Interpolation, ohne Schattierung

First Hit, Trilineare Interpolation, Depth-Schattierung
First Hit, Trilineare Interpolation, Depth-Schattierung

Levoy, Trilineare Interpolation, Phong-Schattierung
Levoy, Trilineare Interpolation, Phong-Schattierung

Quellcode-Dokumentation

Referenz: Javadoc-Dokumentation