20.07.2013 Aufrufe

Visualisierung von Nervenfaserflächen im menschlichen Gehirn aus ...

Visualisierung von Nervenfaserflächen im menschlichen Gehirn aus ...

Visualisierung von Nervenfaserflächen im menschlichen Gehirn aus ...

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.

Universität Leipzig<br />

Fakultät für Mathematik und Informatik<br />

(Institut für Informatik)<br />

<strong>Visualisierung</strong> <strong>von</strong> <strong>Nervenfaserflächen</strong> <strong>im</strong> <strong>menschlichen</strong><br />

<strong>Gehirn</strong> <strong>aus</strong> DTI Daten.<br />

Diplomarbeit<br />

Leipzig, Januar 2009 vorgelegt <strong>von</strong><br />

Betreuer :<br />

1<br />

Schurade, Ralph<br />

Studiengang Informatik<br />

Dr. Alfred Anwander (MPI für Kognitions- und Neurowissenschaften, Leipzig)<br />

Dr. Mario Hlawitschka (University of California, Davis)<br />

Prof. Dr. Gerik Scheuermann (Universität Leipzig)


Inhalt<br />

1. Einleitung ........................................................................................................................ 5<br />

2. Grundlagen ...................................................................................................................... 8<br />

2.1 Allgemeines ......................................................................................................................... 8<br />

2.2 Magnetresonanzbildgebung ............................................................................................... 9<br />

2.3 Diffusions-Tensor-Bildgebung ........................................................................................... 10<br />

2.3.1 Der Diffusionstensor und der Diffusionsellipsoid ...................................................... 10<br />

2.3.2 Zweid<strong>im</strong>ensionale <strong>Visualisierung</strong> der DTI-Resultate .................................................. 12<br />

2.3.3 Dreid<strong>im</strong>ensionale Rekonstruktion <strong>von</strong> Nervenfaserbündeln ..................................... 15<br />

2.3.4 Der Fact-Algorithmus ................................................................................................. 16<br />

2.3.5 Probabilistische Traktographie ................................................................................... 16<br />

3. Methoden ..................................................................................................................... 18<br />

3.1 kd-Baum ............................................................................................................................ 18<br />

3.2 Marching Cubes ................................................................................................................. 20<br />

3.3 NURBS-Flächen .................................................................................................................. 23<br />

3.3.1 NURBS-Kurven ............................................................................................................ 23<br />

3.3.2 NURBS-Flächen ........................................................................................................... 24<br />

3.4 LIC ...................................................................................................................................... 26<br />

3.5 Loop Subdivision ............................................................................................................... 28<br />

Regeln für innere ungerade Punkte: ................................................................................... 28<br />

Regeln für innere gerade reguläre Punkte: ......................................................................... 29<br />

Regeln für innere gerade irreguläre Punkte: ....................................................................... 29<br />

Regeln für ungerade Randpunkte ....................................................................................... 30<br />

Regeln für gerade Randpunkte ........................................................................................... 30<br />

Exakte Berechnung <strong>von</strong> Randpunkten ................................................................................ 30<br />

4. Implementierung ........................................................................................................... 32<br />

4.1 Allgemeines ....................................................................................................................... 32<br />

4.2 Anzeige <strong>von</strong> mult<strong>im</strong>odalen MR-Daten .............................................................................. 32<br />

4.2.1 Shaderbasiertes Multitexturing ................................................................................. 33<br />

4.2.2 Interpolation .............................................................................................................. 34<br />

4.3 Fasern ................................................................................................................................ 36<br />

3


4.3.1 Auswahl mittels Box ................................................................................................... 37<br />

4.3. 2 kd-Baum .................................................................................................................... 40<br />

4.3. 3 Auswahl über ROI ...................................................................................................... 41<br />

4.3. 4 Farbgebung ................................................................................................................ 43<br />

4.3.5 Rendering ................................................................................................................... 44<br />

4.3.6 Rendering der Fasern als Röhren ............................................................................... 45<br />

4.3.7 Betrachtung des Speicherverbrauches ...................................................................... 46<br />

4.4 Isoflächen .......................................................................................................................... 48<br />

4.4.1 Verbesserung ............................................................................................................. 49<br />

4.5 Schnittfläche ...................................................................................................................... 52<br />

4.5.1 Clipping einer Oberfläche ........................................................................................... 52<br />

5. Ergebnisse ..................................................................................................................... 54<br />

5.1 Beispiel einer virtuellen Klingler-Dissektion ...................................................................... 54<br />

5.2 Anwendungen ................................................................................................................... 58<br />

5.2.1 Vergleichende Morphometrie eines Faserbündels für verschiedene Probanden ..... 58<br />

5.2.2 Segmentierung <strong>von</strong> Unterkomponenten eines Faserbündels ................................... 59<br />

5.2.3 <strong>Visualisierung</strong> <strong>von</strong> Eigenschaften der weißen Masse auf Faserbündeln ................... 59<br />

5.2.4 Evaluierung <strong>von</strong> Ultra-Hochfeld 7-Tesla diffusionsgewichteten Daten ..................... 60<br />

5.2.5 Analyse der anatomischen Verbindungen zwischen funktionell aktivierten<br />

Hirnregionen ....................................................................................................................... 61<br />

5.2.7 Analyse anatomischer Eigenschaften der weißen Substanz mithilfe der LIC-<br />

Texturierung ........................................................................................................................ 63<br />

5.2.8 Kombination mehrerer Faserbündel in der virtuellen Klingler Dissektion ................. 64<br />

6. Zusammenfassung und Ausblick ..................................................................................... 65<br />

Anhang A Quelltextfragmente ........................................................................................... 67<br />

A.1 Methode zum Erzeugen eines kd-Baums auf einem STL Vector ...................................... 67<br />

A.2 Rendering der Linien mit Vertex Buffer Objects ............................................................... 68<br />

A.3 Shader-Code für Pseudo-Röhren ...................................................................................... 69<br />

Anhang B Beschreibung des Nutzerinterface ...................................................................... 71<br />

Literaturverzeichnis ........................................................................................................... 76<br />

Abbildungsverzeichnis ....................................................................................................... 79<br />

Abkürzungsverzeichnis ...................................................................................................... 82<br />

Danksagung ....................................................................................................................... 83<br />

4


Kapitel 1<br />

Einleitung<br />

Unter den verschiedenen nichtinvasiven Bildgebungsverfahren zur Analyse des<br />

<strong>menschlichen</strong> <strong>Gehirn</strong>s in vivo 1 hat die diffusionsgewichtete Magnetresonanzbildgebung<br />

die einzigartige Eigenschaft Richtungsinformationen, wie die Faserrichtungen in der<br />

weißen <strong>Gehirn</strong>substanz, aufzunehmen. Die <strong>Visualisierung</strong> der Diffusionsrichtung in<br />

jedem Voxel 2 ist ein effizientes Verfahren, um die lokale Faserrichtung zu analysieren.<br />

Leider ist es auf gegenwärtigen Desktopcomputern nicht möglich, Regionen größer als<br />

ca. 20 x 20 Voxel mit Eigenvektoren oder Tensorglyphen sinnvoll darzustellen.<br />

Außerdem kann die hauptsächliche Diffusionsrichtung <strong>von</strong> der gewählten Ebene<br />

abweichen, was einen falschen Eindruck der wirklichen Faserrichtung vermittelt, oder<br />

das willkürliche Platzieren der Glyphen erzeugt visuelle Artefakte, die zu<br />

Fehlinterpretationen führen [1].<br />

Zur <strong>Visualisierung</strong> der Diffusionsrichtung auf einem kompletten Schnitt durch das<br />

<strong>Gehirn</strong> wird üblicherweise eine Farbkodierung verwendet. Das reduziert jedoch den<br />

Eindruck <strong>von</strong> gerichteten Fasern für das menschliche Auge. Ein besserer Eindruck der<br />

gerichteten Fasern wird mit einer LIC 3 -Textur auf der Schnittebene erzeugt. Eine lokale<br />

Abbildung der Oberflächentangente auf die Faserstruktur erlaubt visuellen Zugriff auf<br />

die dreid<strong>im</strong>ensionale Faserstruktur.<br />

In der Vergangenheit wurde ein großer Teil der Forschung auf Algorithmen zur<br />

Rekonstruktion und Darstellung der Nervenfasern verwendet. Das Interesse galt dabei<br />

meist der Selektion [2, 3, 4], dem Clustering [5,6], dem Rendering als Linien [7],<br />

Röhren [8] oder Oberflächen [9], dem Rendering mit hoher Qualität [10] oder der<br />

an<strong>im</strong>ierten <strong>Visualisierung</strong> [11].<br />

1 am lebenden Objekt<br />

2 Der Begriff Voxel wird meist in der 3D-Computergrafik verwendet und setzt sich <strong>aus</strong> den Wörtern<br />

volumetric und pixel zusammen<br />

3 line integral convolution<br />

5


Für ein besseres Verständnis dieser Faserstrukturen ist es jedoch <strong>von</strong> Vorteil, sie in die<br />

umgebende Anatomie einzubetten, die zum Beispiel <strong>aus</strong> hochauflösenden T1gewichteten<br />

MRI gewonnen wird. Die Methode <strong>von</strong> Park u.a. [12] rendert Stromlinien<br />

und eine Rekonstruktionen der grauen Materie, ist aber auf Grund der Verwendung <strong>von</strong><br />

rechenintensiver Segmentierung der Daten zu langsam, um die gewünschte<br />

Interaktivität zu erlauben.<br />

Die allgemein akzeptierte Vorgehensweise ist die Kombination der dreid<strong>im</strong>ensionalen<br />

Anzeige der Fasern mit achsenparallelen Schichten der T1-Daten oder Volumengrafik.<br />

Zur Darstellung der exakten räumlichen Position der Faserbündel wäre es jedoch besser<br />

das <strong>Gehirn</strong> entlang des Verlaufs der Faserbündel zu schneiden. Dabei wird das Gewebe<br />

entfernt, das die Faserbündel verdeckt und benachbarte Strukturen sichtbar gemacht.<br />

Ein erster Versuch mit <strong>aus</strong> T1-Daten erzeugten dreid<strong>im</strong>ensionalen Strukturen wurde <strong>von</strong><br />

Schultz u.a. [13] unternommen. Deren Methode zielt aber auf die Verformung einer<br />

planaren Schnittfläche, in die die Fasern eingebettet werden.<br />

Die hier betrachtete Methode soll eine verformbare Schnittfläche erzeugen, die parallel<br />

zu selektierten Faserbündeln verläuft und mit der hauptsächlichen Faserrichtung<br />

texturiert wird. Dabei soll das gewünschte Ergebnis Schaubildern in medizinischen<br />

Fachbüchern wie [14] (siehe Abbildung 1.1) möglichst nahe kommen.<br />

Abbildung 1.1: Abbildung <strong>aus</strong> E.Ludwig, J. Klingler: Atlas Cerebri Humani; Hemisphaerium sinistrum ab<br />

latere externo conspectum [14]<br />

6


Die Vorgehensweise wurde dabei <strong>von</strong> <strong>Visualisierung</strong>stechniken für Vektorfelder<br />

inspiriert. Vor allen Dingen <strong>von</strong> Laramee u.a. [15] und Hotz u.a. [16], die Texturen auf<br />

Oberflächen zur Veranschaulichung <strong>von</strong> technischen Tensordaten benutzen.<br />

Die zu entwickelnde Software soll außerdem zur Analyse <strong>von</strong> multi-modalen MRI-<br />

Daten <strong>im</strong> täglichen Gebrauch zum Einsatz kommen. Dazu wurden folgende Funktionen<br />

<strong>im</strong>plementiert:<br />

Anzeige <strong>von</strong> verschiedenen MRI-Daten als 3D-Texturen auf achsenparallelen<br />

Navigationsschichten, verschiedene Modi des Überblendens mehrerer Texturen<br />

Anzeige <strong>von</strong> vorberechneten Fasern als Linien oder Röhren<br />

Interaktive Auswahl <strong>von</strong> Faserbündeln<br />

Erstellung <strong>von</strong> Iso-Oberflächen <strong>von</strong> skalaren Datensätzen, Texturierung der<br />

Oberflächen MRI-Daten wie bei den Navigationsschichten<br />

Erstellung einer verformbaren Schnittfläche entlang selektierter Faserbündel<br />

Texturierung der Oberflächen mit LIC-Textur<br />

Da hauptsächlich Faserstrukturen analysiert werden, wurde das Programm<br />

FiberNavigator getauft.<br />

7


Kapitel 2<br />

Grundlagen<br />

2.1 Allgemeines<br />

Die Grundlagen der Diffusions-Tensor-Bildgebung (engl. diffusion tensor <strong>im</strong>aging,<br />

DTI) wurden schon 1965 gelegt, als Stejskal und Tanner [17] die Diffusionskonstante<br />

<strong>von</strong> Wasser mit einer Kernspin Magnet-Resonanz-Tomographie (MRT) und Magnetfeld<br />

Gradient Systemen ermittelten. Verglichen mit der Diffusionsmessung mittels<br />

chemischer Marker, hat diese Methode einige Vorteile. Zum Einen ist sie nichtinvasiv,<br />

zum Anderen misst sie molekulare Bewegung entlang einer willkürlich gewählten<br />

Richtung. Man kann Diffusion <strong>von</strong> links nach rechts, <strong>von</strong> oben nach unten, <strong>von</strong> vorn<br />

nach hinten oder entlang eines beliebigen Winkels messen. Wenn man frei bewegendes<br />

Wasser misst, bedeutet dies noch nicht viel, da Messungen <strong>aus</strong> jeder Richtung das<br />

gleiche Resultat liefern. Dies bezeichnet man als isotrope Diffusion. Die Situation<br />

ändert sich jedoch, wenn man biologisches Gewebe, wie Muskeln oder <strong>Gehirn</strong>e,<br />

betrachtet. Dieses besteht <strong>aus</strong> Fasern mit zusammenhängender Ausrichtung. In solchen<br />

Systemen tendiert das Wasser entlang der Fasern zu diffundieren, die Diffusion wird<br />

anisotrop. Das bedeutet, dass die Resultate der Diffusionsmessungen sind nicht mehr<br />

gleich sind, wenn in verschiedenen Richtungen gemessen wird. Wird die Diffusion<br />

entlang der Faserrichtung gemessen ist die berechnete Diffusionskonstante am größten,<br />

während sie ihren kleinsten Wert bei Messungen senkrecht zur Faserrichtung erhält.<br />

Das Interessante an anisotroper Diffusion ist, dass man die zugrundeliegende Anatomie<br />

des Untersuchungsgegenstandes rekonstruieren kann. Für Muskelgewebe besteht<br />

üblicherweise a priori Wissen über die Faserrichtung. Was ist aber wenn diese Richtung<br />

unbekannt ist? Theoretisch sollte es möglich sein, die Faserrichtung <strong>aus</strong> mehreren<br />

Messungen <strong>aus</strong> unterschiedlichen Richtungen zu ermitteln. Die Faser sollte dabei<br />

entlang der Richtung mit der größten berechneten Diffusionskonstante <strong>aus</strong>gerichtet sein.<br />

8


Diese ergibt sich <strong>aus</strong> dem diffusionsgewichteten Signal und einem Referenzsignal. Ein<br />

Beispiel hierfür ist die Messung der anisotropen Diffusion <strong>im</strong> <strong>Gehirn</strong>. Es ist bekannt,<br />

dass das <strong>Gehirn</strong> axonale 4 Fasern enthält, deren Strukturen sehr kompliziert und noch<br />

nicht voll verstanden sind. Es wäre also sehr hilfreich, <strong>aus</strong> der anisotropen Diffusion die<br />

Faserstrukturen ableiten zu können. Dies ist leider nicht ohne weiteres möglich. Anders<br />

als bei Muskelgewebe, das <strong>aus</strong> Fasern mit einheitlicher Orientierung besteht, haben <strong>im</strong><br />

Hirn verschiedene Regionen unterschiedliche Faserrichtungen. Die Struktur des <strong>Gehirn</strong>s<br />

ist zu kompliziert, um mit s<strong>im</strong>pler Messung der Diffusionskonstanten beschrieben zu<br />

werden, es sei denn man schneidet kleinere Regionen <strong>aus</strong>. Das ist natürlich am lebenden<br />

Menschen nicht möglich. Dieses Problem wurde gelöst, in dem Diffusionsmessung mit<br />

Magnetresonanzbildgebung verbunden wurde, mittels derer die Messung der<br />

Diffusionskonstante an jedem Voxel mit einer Auflösung <strong>von</strong> 1-3 Mill<strong>im</strong>eter möglich<br />

ist. Diese Technik wird als diffusions MRT bezeichnet und seit den späten 1980er<br />

Jahren angewandt.<br />

Diffusions MRT lieferte eine Möglichkeit die Faserstruktur des <strong>Gehirn</strong>s abzuschätzen.<br />

Eine wesentlich Hürde musste aber noch übersprungen werden: Wie lassen sich <strong>aus</strong><br />

einer Serie <strong>von</strong> Diffusionsmessungen nutzbare quantifizierende Parameter ableiten um<br />

die Diffusionsanisotropie und Faserrichtungen zu beschreiben. Steht unendlich Zeit für<br />

Messungen zur Verfügung, könnte man <strong>aus</strong> t<strong>aus</strong>enden Richtungen messen, <strong>aus</strong> denen<br />

dann die mit der größten Diffusionskonstante identifiziert werden kann. Natürlich sind<br />

die verfügbare Zeit und auch die Anzahl der Richtungen, <strong>aus</strong> denen man messen kann,<br />

endlich. Aus diesem Grund wurden mathematische Modelle nötig, mit denen sich <strong>aus</strong><br />

diesen l<strong>im</strong>itierten Messungen die gewünschten Werte berechnen lassen. In den frühen<br />

1990er Jahren wurden einige Versuche unternommen. Ein Modell auf Basis <strong>von</strong><br />

Tensorberechnungen ging als das meist akzeptierte hervor. Das auf dieser Methode<br />

basierende diffusions MRT wird Diffusions-Tensor-Bildgebung oder DTI genannt.<br />

2.2 Magnetresonanzbildgebung<br />

MR-Bilder bestehen <strong>aus</strong> einzelnen Bildelementen (Voxel) mit unterschiedlicher<br />

Intensität (Helligkeit). Die wesentlichen Parameter sind dabei räumliche Auflösung und<br />

Kontrast. Die räumliche Auflösung beträgt in modernen Geräten 1-3 mm oder sogar<br />

noch weniger, womit sehr detailierte Aufnahmen der <strong>Gehirn</strong>struktur möglich sind. MR-<br />

Kontrast basiert üblicherweise auf den unterschiedlichen Relaxationszeiten der<br />

Wassermoleküle <strong>im</strong> Gewebe, T1 oder T2, die zur Unterscheidung der unterschiedlichen<br />

<strong>Gehirn</strong>regionen zum Beispiel graue oder weiße <strong>Gehirn</strong>substanz benutzt werden. MR ist<br />

4 Axon: langer faserartiger Fortsatz der Nervenzelle<br />

9


aber nicht in der Lage guten Kontrast innerhalb der weißen Substanz zu liefern. Diese<br />

erscheint als homogene Masse, egal wie hoch die räumliche Auflösung gewählt wird.<br />

Aus der MRT-Sicht erscheint die weiße <strong>Gehirn</strong>substanz wie homogene Flüssigkeit.<br />

Weiße <strong>Gehirn</strong>substanz besteht <strong>aus</strong> Axonen, die verschiedene Regionen des <strong>Gehirn</strong>s<br />

verbinden. Diese Axone gruppieren sich mit anderen Axonen zu Faserbündeln. Der<br />

Durchmesser dieser Faserbündel kann je nach Zielregion mehrere Zent<strong>im</strong>eter betragen.<br />

Einige da<strong>von</strong>, wie das corpus callosum 5 , sind auch <strong>im</strong> konventionellen MRT sichtbar.<br />

Da die meisten dieser Bündel aber gleiche chemische Zusammensetzungen und damit<br />

gleiche T1- und T2- Relaxationszeiten haben, können sie nicht auf diese Art identifiziert<br />

werden. Es ist sehr schwer zu erkennen, wo sich interessante Abschnitte der weißen<br />

<strong>Gehirn</strong>substanz befinden und wie sie untereinander verbunden sind.<br />

Konventionelles MRT bietet auch keinen guten Kontrast für Strukturen innerhalb der<br />

grauen <strong>Gehirn</strong>substanz. Es ist unmöglich die Unterschiede entlang der kortikalen<br />

Schichten oder zwischen diesen zu erkennen. Andererseits ist es möglich, die Muster<br />

der Hirnwindungen als optische Hinweise für die Erkennung der Abgrenzungen der<br />

kortikalen Anatomie zu benutzen. Leider gibt es keine entsprechenden optischen<br />

Hinweise für Strukturen innerhalb der weißen <strong>Gehirn</strong>substanz.<br />

2.3 Diffusions-Tensor-Bildgebung<br />

2.3.1 Der Diffusionstensor und der Diffusionsellipsoid<br />

MRT ist eine Technik, die Protonensignale <strong>von</strong> Wassermolekülen misst. Die Bilder<br />

dar<strong>aus</strong> geben daher Wasserdichte und die Eigenschaften des beweglichen Wassers als<br />

Position <strong>im</strong> Raum an. Zusätzlich können mit MRT noch die lokalen chemischen und<br />

physikalischen Eigenschaften des Wassers gemessen werden. Zwei dieser<br />

Eigenschaften sind molekulare Diffusion und Fluss. MRT kann mit unterschiedlichen<br />

Methoden beide messen.<br />

Der Diffusionsprozess spiegelt die thermische Brownsche Bewegung wieder. Dieser<br />

Prozess kann mit dem einfachen Beispiel eines Tropfens Tinte, der auf ein Blatt Papier<br />

getropft wird erklärt werden. Normalerweise breitet sich dieser Tropfen kreisförmig <strong>aus</strong><br />

5 große, quer verlaufende Verbindung zwischen den beiden Hemisphären des Großhirns<br />

10


und wird mit der Zeit größer. Das Ausmaß des Fleckes ist umso größer, je schneller die<br />

Diffusion ist. Da die Ausdehnung des Fleckes in jede Richtung gleich ist, spricht man<br />

hier <strong>von</strong> isotroper Diffusion. Wenn das Papier aber eine darunter liegende Faserstruktur<br />

hat, in der zum Beispiel dichte Fasern horizontal verlaufen und weniger dichte vertikal,<br />

wird der Tintenfleck eine eher ovale Form annehmen. Man spricht dann <strong>von</strong> anisotroper<br />

Diffusion. Ein ähnlicher Prozess findet <strong>im</strong> <strong>Gehirn</strong> statt, wo Wasser entlang der axonalen<br />

Fasern diffundiert. Würde man Tinte in die weiße <strong>Gehirn</strong>substanz injizieren, würde sich<br />

diese entlang der axonalen Fasern verteilen. Innerhalb der grauen <strong>Gehirn</strong>substanz würde<br />

die Verteilung eine zufälligere Form annehmen, da hier weniger oder keine gerichteten<br />

Faserstrukturen vorliegen.<br />

Bei Diffusionsmessung mittels MRT kann der Grad der Wasserdiffusion entlang<br />

beliebig gewählter Achsen gemessen werden. Diffusionsmessungen können mit<br />

Bildgebung verbunden werden, <strong>aus</strong> der die effektive Diffusionskonstante an jedem<br />

Pixel gemessen wird, sogenannte Karten der Diffusionskonstanten.<br />

Abbildung 2.1 Karten der Diffusionskonstante einer Schicht gemessen in 3 verschiedenen Richtungen. In<br />

diesen Bildern zeigt die Helligkeit das Ausmaß der Diffusion. Zum Beispiel hat das corpus callosum (gelber<br />

Pfeil) eine hohe Diffusionskonstante wenn die Messung horizontal erfolgt (erstes Bild), aber gering wenn die<br />

Messung entlang der vertikalen Achse (zweites Bild) oder rechtwinklig dazu erfolgt (drittes Bild).<br />

Abbildung 2.1 zeigt in drei unterschiedlichen Richtungen gemessene Karten der<br />

Diffusionskonstanten derselben Schicht. Die Diffusion wurde entlang der<br />

Pfeilrichtungen gemessen, <strong>im</strong> dritten Bild senkrecht zur Ebene. Die Helligkeit der Pixel<br />

zeigt das Ausmaß der Diffusion an. Man sieht zum Beispiel <strong>im</strong> corpus callosum (gelber<br />

Pfeil) eine hohe Diffusionskonstante, wenn die Diffusion entlang der horizontalen<br />

Achse gemessen wird (linkes Bild), aber einen geringeren Wert entlang der anderen<br />

11


Die Karte der Anisotropie (Abbildung 2.3) zeigt die Grad der Gerichtetheit<br />

(Anisotropie) des Diffusionsellipsoiden. Bei dieser Darstellung erscheint die weiße<br />

<strong>Gehirn</strong>substanz heller als die graue und zeigt damit Regionen <strong>im</strong> <strong>Gehirn</strong> mit<br />

zusammenhängenden Faserstrukturen. Man n<strong>im</strong>mt an, dass Faktoren wie axonale<br />

Dichte, Myelination und Homogenität in der axonalen Ausrichtung den Grad der<br />

Diffusionsanisotropie beeinflussen.<br />

Für diese Karte wird die sogenannte Fraktionelle Anisotropie (FA), die auf [0,1] skaliert<br />

ist, berechnet.


2.3.3 Dreid<strong>im</strong>ensionale Rekonstruktion <strong>von</strong> Nervenfaserbündeln<br />

Als Traktografie [19] werden Verfahren bezeichnet, die den Verlauf größerer<br />

Nervenfaserbündel rekonstruieren. Üblich sind hierbei Darstellungen <strong>von</strong> Hyper-<br />

Stromlinien, dreid<strong>im</strong>ensionalen Linien, deren Verlauf der Richtung des größten<br />

Diffusions-Koeffizienten folgt.<br />

Die Tatsache, dass die Diffusions-Tensor-Bildgebung derzeit das einzige Verfahren ist,<br />

das eine nicht-invasive Darstellung der Nervenfaserbündel erlaubt, hat wesentlich zu<br />

ihrer Verbreitung beigetragen. Andererseits ist es aufgrund dessen schwierig zu<br />

überprüfen, inwiefern die Ergebnisse gängiger Traktografie-Verfahren mit dem<br />

tatsächlichen Verlauf der Nervenbahnen übereinst<strong>im</strong>men. Erste Versuche der<br />

Validierung <strong>im</strong> Tierexper<strong>im</strong>ent stützen jedoch die Vermutung, dass die Hauptrichtung<br />

der Diffusion die Ausrichtung kohärenter Nervenfasern anzeigt und weisen<br />

Übereinst<strong>im</strong>mungen zwischen nichtinvasiver Traktografie und nach dem Tod<br />

durchgeführten histologischen Untersuchungen nach. Bereiche, in denen Faserbündel<br />

sich auffächern oder kreuzen, werden <strong>von</strong> der DT-MRT jedoch nur sehr unzureichend<br />

erfasst.<br />

Zur Erzeugung der Linien sind zwei Ansätze verbreitet. Im ersten werden die Fasern <strong>aus</strong><br />

einer vorbest<strong>im</strong>mten Region (region of interest – ROI) gestartet, <strong>im</strong> zweiten, dem<br />

sogenannten „brute force“ Ansatz wird <strong>aus</strong> jedem Voxel eine Linie gestartet. Dies ist<br />

zeitaufwendiger bietet aber eine wesentlich umfangreichere Darstellung der Fasern. Wir<br />

verwenden hier den zweiten Ansatz, da dieser die besseren Resultate liefert und mittels<br />

interaktiver Auswahlmöglichkeiten die Betrachtung der Fasern <strong>im</strong> gesamten <strong>Gehirn</strong><br />

möglich ist.<br />

Zur Stromlinienberechnung wird der FACT 6 -Algorithmus [20,21] verwendet, der eine<br />

einfache, lineare Fortsetzung der Linie entsprechend des Winkels des größten<br />

Eigenvektors erzeugt. Um Fehler durch R<strong>aus</strong>chen und andere Störungen zu vermeiden,<br />

werden die Fasern nur in Voxeln mit einer FA größer einem Schwellwert gestartet und<br />

in Pixeln mit FA kleiner dieses Schwellwertes abgebrochen. Für den Schwellwert wird<br />

üblicherweise 0.2 gewählt. Der Winkel der Fortsetzung der Linie wird begrenzt, in dem<br />

das Skalarprodukt zweier aufeinanderfolgender Eigenvektoren gebildet wird und nur<br />

Werte größer 0.75 weiterbehandelt werden.<br />

6 Fiber Assignment by Continuous Tracking<br />

15


Allgemeinen ist diese distanzabhängige Verringerung der Sicherheit bei großen und<br />

stark <strong>aus</strong>geprägten Nervenbahnen geringer als bei kleinen Bahnen. Die Interpretation<br />

<strong>von</strong> Wahrscheinlichkeitskarten gestaltet sich häufig aufgrund der Distanzabhängigkeit<br />

und der nicht sehr intuitiven Darstellung ohne Erfahrung als schwierig. Ein großer<br />

Vorteil ist die einfache Handhabung verglichen zu den Kurven oder Polygonen der<br />

Stromlinien-Methoden. Zum Beispiel können Gruppenstatistiken relativ einfach damit<br />

erstellt werden.<br />

Abbildung 2.5: T1-Gr<strong>aus</strong>tufenbild überlagert <strong>von</strong> einer Warscheinlichkeitskarte<br />

als Farbkarte für eine Startpunkt <strong>im</strong> corpus callosum<br />

17


Kapitel 3<br />

Methoden<br />

Zur Erzeugung einer virtuellen Klingler-Dissektion werden verschiedene, etablierte<br />

Methoden der <strong>Visualisierung</strong> kombiniert. Für die schnelle Faserselektion ist es<br />

notwendig eine Datenstruktur zu verwenden, die die Anzahl der nötigen Tests zur<br />

Entscheidung, ob eine Faser <strong>aus</strong>gewählt ist, auf ein Min<strong>im</strong>um reduziert. Der kd-Baum<br />

hat sich dafür als opt<strong>im</strong>al erwiesen.<br />

In diesem Kapitel sollen die theoretischen Grundlagen dieser Methoden beschrieben<br />

werden. Diese Methoden sind:<br />

- kd-Baum zur Beschleunigung de Faser<strong>aus</strong>wahl<br />

- Marching Cubes Algorithmus zur Erzeugung <strong>von</strong> Iso-Oberflächen<br />

- Loop Subdivision zur Glättung und Verfeinerung <strong>von</strong> Dreiecksgittern<br />

- NURBS-Darstellung für die Schnittfläche<br />

- LIC-Texturierung<br />

3.1 kd-Baum<br />

Ein kd-Baum ist eine Datenstruktur zur binären Raumaufteilung <strong>von</strong> Punkten <strong>im</strong> kd<strong>im</strong>ensionalen<br />

(hier 3-d<strong>im</strong>ensionalen) Raum. Kd-Bäume eignen sich besonders gut für<br />

orthogonale Bereichsanfragen.<br />

Be<strong>im</strong> Aufbau des kd-Baums wird über die Ebenen rotiert. An der Wurzel sind die<br />

Punkte entlang der x-Achse sortiert, die Kinder entlang der y-Achse, deren Kinder<br />

entlang der z-Achse usw. Auf jeder Ebene ist die Wurzel, an der das Volumen geteilt<br />

wird, üblicherweise der Median. Dieses Verfahren erzeugt einen balancierten kd-Baum.<br />

18


Da die Anzahl der Punkte in unserem Fall statisch ist, kann auf Funktionen zum<br />

Einfügen und Löschen <strong>von</strong> Punkten verzichtet und der Baum effizient in einem Array<br />

gespeichert werden. Die Wurzel des Baums ist das mittlere Element des Arrays, die<br />

Knoten jeweils die mittleren Elemente der Teil-Arrays. Dies führt zu einem homogenen<br />

kd-baum, bei dem jeder Knoten einen Datensatz beinhaltet. Inhomogene kd-Bäume<br />

hingegen speichern Daten nur an den Blättern.<br />

Abbildung 3.1: Dreid<strong>im</strong>ensionale Darstellung eines kd-Baumes<br />

Abbildung 3.1 zeigt einen 3-d<strong>im</strong>ensionalen kd-Baum. Die erste Teilung entlang der<br />

roten Ebene teilt das Volumen in zwei Unterbereiche. Diese werden entlang der Grünen<br />

und die dar<strong>aus</strong> entstehenden entlang der blauen Ebenen geteilt. Da keine weiteren<br />

Teilungen vorgenommen werden, ist das Ergebnis ein Baum, der das Volumen in acht<br />

Bereiche teilt.<br />

Die Erzeugung des Baumes erfolgt über einen rekursiven divide-and-conquer<br />

Algorithmus (siehe Anhang).<br />

Dieser Algorithmus ist sehr einfach zu parallelisieren, da nach anfänglichem Teilen die<br />

weitere Bearbeitung auf <strong>von</strong>einander unabhängigen Bereichen erfolgt.<br />

Die Erzeugung des kd-Baums für ca. 29 Millionen Punkte benötigt auf einem System<br />

mit Intel Core 2 Quad 9300 Prozessor 6 Sekunden.<br />

19


3.2 Marching Cubes<br />

Der Algorithmus, wie <strong>von</strong> Lorensen und Cline [8] beschrieben, besteht <strong>aus</strong> zwei<br />

pr<strong>im</strong>ären Bestandteilen. Im Ersten werden die Lage der Oberfläche ermittelt und die<br />

Dreiecke erzeugt und <strong>im</strong> Zweiten wird für jeden Dreieckspunkt die Normale berechnet.<br />

Marching Cubes benutzt einen divide-and-conquer Ansatz zur Ermittlung der<br />

Oberfläche in einem Würfel, der <strong>aus</strong> acht Punkten, <strong>von</strong> denen je 4 <strong>aus</strong> zwei<br />

benachbarten Schichten des Datensatzes kommen, erzeugt wird.<br />

Abbildung 3.2: Veranschaulichung eines Würfels zwischen zwei Schichten<br />

Der Algorithmus best<strong>im</strong>mt wie der Würfel (cube) <strong>von</strong> der Oberfläche geschnitten wird<br />

und geht dann zum nächsten weiter (marching). Dafür wird jedem Punkt des Würfels<br />

eine 1 zugewiesen wenn der Wert größer oder gleich dem für die Oberfläche gewählten<br />

ist. Die Punkte befinden sich innerhalb bzw. auf der Oberfläche. Punkte mit einem Wert<br />

kleiner als dem gewählten erhalten eine 0 und befinden sich außerhalb. Die Oberfläche<br />

schneidet den Würfel, wenn mindestens ein Punkt außerhalb der Oberfläche ist und die<br />

anderen innerhalb. Mit dieser Feststellung wird die Topologie der Oberfläche innerhalb<br />

des Würfels best<strong>im</strong>mt.<br />

20


Abbildung 3.3 Nummerierung der Ecken und Kanten des Würfels<br />

Da es 8 Eckpunkte und zwei Zustände, innerhalb und außerhalb, gibt, existieren nur<br />

2 8 =256 verschiedene Möglichkeiten, wie die Oberfläche einen Würfel schneiden kann.<br />

Mittels Nummerierung wird eine Tabelle der geschnittenen Kanten für diese 256 Fälle<br />

erzeugt.<br />

Diese 256 Fälle zu triangulieren ist aufwendig und fehleranfällig. Zwei verschiedene<br />

Arten der Symmetrie reduzieren das Problem <strong>von</strong> 256 auf 15 Muster. Erstens ist die<br />

Topologie unverändert, wenn die Zustände der Punkte, innerhalb oder außerhalb,<br />

invertiert werden. Dies reduziert die Anzahl der zu betrachteten Fälle auf 128. Die<br />

zweite Art der Symmetrie, Rotationssymmetrie, reduziert dies weiterhin auf 15<br />

Basiskonfigurationen. Abbildung 3.4 zeigt die 15 möglichen Konfigurationen.<br />

21


Abbildung 3.4: Darstellung der triangulierten Würfel<br />

Das einfachste Muster, 0, entsteht wenn sich alle Punkte innerhalb oder außerhalb der<br />

Ebene befinden. Das nächste, 1, entsteht wenn die Oberfläche einen der Punkte <strong>von</strong> den<br />

anderen 7 abschneidet, was in einem Dreieck <strong>aus</strong> den drei Kantenschnittpunkten<br />

resultiert. Die anderen Muster erzeugen mehrere Dreiecke. Durch Permutation mittels<br />

Komplementbildung und Rotation entstehen die 256 möglichen Konfigurationen.<br />

Für jede Konfiguration wird ein Index erzeugt, der sich <strong>aus</strong> dem Status jedes einzelnen<br />

Punktes ergibt. Ausgehend <strong>von</strong> der Nummerierung der Punkte wie in Abbildung 3.3,<br />

enthält der 8-Bit Index ein Bit für jeden Eckpunkt des Würfels. Dieser Index fungiert als<br />

Pointer auf eine Kantentabelle, die für jede Konfiguration die Kantenschnittpunkte<br />

enthält. Mit diesem Index kann der Oberflächenverlauf entlang der Kanten linear<br />

interpoliert werden.<br />

22


3.4 LIC<br />

LIC [25], entwickelt 1993, steht für line integral convolution, was mit<br />

Linienintegralfaltung übersetzt werden kann. Die Grundidee <strong>von</strong> LIC entstand <strong>aus</strong> der<br />

Beobachtung eines Ölfilms auf Objekten <strong>im</strong> Windkanal. Das Öl bildet dabei Schlieren<br />

entlang der Strömungsrichtungen. LIC ist heute eine allgemein akzeptierte Methode zur<br />

<strong>Visualisierung</strong> <strong>von</strong> Richtungsinformationen auf Oberflächen.<br />

In der Originalmethode wird für jeden Pixel eine lokale Stromlinie berechnet. Dann<br />

wird für jedes Segment der Stromlinie, die innerhalb des Pixels liegt, das Integral eines<br />

Faltungskerns berechnet. Diese Integrale werden benutzt, um eine gewichtete Summe<br />

aller <strong>von</strong> dieser Stromlinie getroffenen Pixel zu berechnen. Die resultierende Summe<br />

ergibt den Ausgabewert für diesen Punkt. Üblicherweise wird weißes R<strong>aus</strong>chen als<br />

Eingabewert für alle Punkte verwendet.<br />

Abbildung 3.5 Strömungsvisualisierung um bluntfin<br />

Das ursprünglich texturbasierte Verfahren für statische zweid<strong>im</strong>ensionale Felder wird<br />

für unseren Fall der Tensorfelder <strong>im</strong> dreid<strong>im</strong>ensionalen Raum erweitert. Dabei werden<br />

nicht mehr parametrisierte Texturen verwendet, sondern ein geometriebasierter Ansatz.<br />

Hierfür wird die Oberfläche mittels Loop-Subdivision [26] soweit verfeinert, dass die<br />

Auflösung der Oberfläche gleich der Displayauflösung ist. Die Linien werden effizient<br />

durch konstante Interpolation in den Dreiecken integriert. Durch die kurze<br />

Integrationslänge und die hohe Auflösung sind Fehler vernachlässigbar. Die Richtung<br />

der Eigenvektoren ist dabei unwichtig, da nur die tangentiale Information genutzt wird.<br />

26


Zusätzlich könnte die Länge der Stromlinien skaliert werden, in dem die fraktionelle<br />

Anisotropie als Parameter genutzt wird.<br />

Zuerst wird die Tensorinformation auf die Oberfläche abgebildet und der größte<br />

Eigenvektor gebildet. Das erzeugt einen Richtungsvektor pro Dreieck. Für die<br />

Dreiecksmenge wird außerdem eine R<strong>aus</strong>chtextur erzeugt. Als nächstes werden in<br />

zufällig gewählten Dreiecken Stromlinien gestartet und für jedes Dreieck die Anzahl der<br />

Stromlinien, die es treffen, notiert. Dreiecke, die nicht <strong>von</strong> einer best<strong>im</strong>mten Anzahl<br />

Stromlienen getroffen werden, werden als zusätzliche Saatpunkte für Stromlinien<br />

genutzt. Die Stromlinien dienen als Filterkern auf der R<strong>aus</strong>chtextur. Durch die hohe<br />

Auflösung des Dreiecksgitters erzeugt dies ein optisch <strong>aus</strong>reichendes Ergebnis.<br />

Im Vergleich zu Verfahren mit parametrisierten Texturen erfordert dieses Vorgehen<br />

eine wesentlich höhere Anzahl an Dreiecken. Es ist jedoch keine globale<br />

Parametrisierung erforderlich, was es für jegliche glatte Oberflächen beliebiger<br />

Topologie anwendbar macht. Dies ermöglicht es, zusätzlich zur Schnittfläche auch<br />

kompliziertere Iso-Oberflächen zu texturieren, wie sie auf Wahrscheinlichkeitskarten<br />

erzeugt werden. (Abb. 3.6).<br />

Abbildung 3.6 LIC auf Iso-Oberfläche einer Wahrscheinlichkeitskarte<br />

27


3.5 Loop Subdivision<br />

Dieses Verfahren wurde <strong>von</strong> Charles Loop [26] entwickelt und ist eines der<br />

Einfachsten. Ein weiterer großer Vorteil besteht darin, dass dieses Verfahren mit<br />

Dreiecksnetzen arbeitet welche auch Grundlage der Rendering Pipeline heutiger<br />

Grafikkarten sind. Grundsätzlich wird jedes Dreieck so aufgeteilt, dass 4 weitere<br />

Dreiecke entstehen (siehe Abbildung 3.7).<br />

Abbildung 3.7 Aufteilung der Dreiecke in vier neue Dreiecke<br />

Wie diese Aufteilung vorzunehmen ist, wird in den folgenden Punkten erläutert. Wenn<br />

das Basisnetz in anderer Topologie vorliegt (z.B.: Vierecksnetz) muss es in einem<br />

ersten Schritt durch Teilen der Flächen in ein Dreiecksnetz umgewandelt werden.<br />

Regeln für innere ungerade Punkte:<br />

Abbildung 3.8 zeigt wie ungerade innere Punkte (Kantenpunkte die in diesem Schritt<br />

neu erzeugt werden) generiert werden. Dabei wird pro Kante ein neuer Kantenpunkt <strong>aus</strong><br />

angrenzenden Punkten entsprechend der Verteilung in Abbildung 3.8 generiert.<br />

Abbildung 3.8 Regel für innere Punkte<br />

28


Regeln für innere gerade reguläre Punkte:<br />

Abbildung 3.9 zeigt wie die neue Position <strong>von</strong> geraden Punkten (bereits bestehende<br />

Punkte) <strong>aus</strong> den angrenzenden Punkten errechnet wird, wenn es sich um einen inneren<br />

regulären Punkt handelt.<br />

Abbildung 3.9 Regel für innere gerade reguläre Punkte<br />

Regeln für innere gerade irreguläre Punkte:<br />

Abbildung 3.10 zeigt das grundsätzliche Schema für innere gerade irreguläre Punkte.<br />

Für β bei gegebener Valenz k schlägt Loop folgendes vor:<br />

1 5 3 1 2<br />

2<br />

1<br />

( ( cos( )) ). Diese Wahl führt nachweislich zu C Stetigkeit. Es sind<br />

k 8 8 4 k<br />

aber auch andere Werte möglich. Warren schlug z.B.: folgende Belegung vor: Für k 3:<br />

3<br />

3<br />

; Für k 3:<br />

. Dies zeigt auch, dass Subdivision keinesfalls eindeutig ist.<br />

8k<br />

16<br />

Jedes Verfahren bietet in gewisser Hinsicht Möglichkeiten das Glätteverhalten zu<br />

beeinträchtigen.<br />

Abbildung 3.10 Regel für innere gerade irreguläre Punkte<br />

29


Regeln für ungerade Randpunkte<br />

Abbildung 3.11 zeigt die Regel für ungerade Randpunkte. Diese Regel wird auch zur<br />

Generierung <strong>von</strong> Falten (engl. creases) innerhalb des Netzes verwendet. Dabei werden<br />

innere Punkte als Randpunkte deklariert und entsprechend derer Vorschrift berechnet.<br />

Regeln für gerade Randpunkte<br />

Abbildung 3.11 Regel für ungerade Randpunkte<br />

Abbildung 3.12 zeigt die Regel für gerade Randpunkte. Wie <strong>im</strong> vorigen Abschnitt wird<br />

dies auch zur Erzeugung <strong>von</strong> Falten verwendet.<br />

Abbildung 3.12 Regel für gerade Randpunkte<br />

Exakte Berechnung <strong>von</strong> Randpunkten<br />

Die beiden vorherigen Schemata haben den Nachteil dass Randpunkte nicht <strong>von</strong> ihrer<br />

1<br />

Valenz abhängig sind. Dies führt dazu, dass Punkte ab Valenz > 7 nicht mehr formal C<br />

stetig sind. Theoretisch könnte das Problem dazu führen, dass verschiedene Netze<br />

entlang eines Randes nicht korrekt verbunden werden, da diese Schnittstelle nicht exakt<br />

gleich ist. wenn Randpunkte unterschiedliche Valenz haben. In der Praxis hat sich aber<br />

gezeigt, dass dies nicht <strong>von</strong> Bedeutung ist, da die Abweichung vom exakten Ergebnis in<br />

1<br />

der Regel nicht wahrnehmbar ist. Wenn man aber formal korrekte C stetige Kanten und<br />

Falten erhalten will, muss man das Schema noch etwas modifizieren und Regeln für<br />

innere ungerade Punkte, welche an einen Randpunkt angrenzen (siehe Abbildung 3.13)<br />

einführen. Bei Randpunkten mit einer Valenz <strong>von</strong> k 7 wird für angrenzende ungerade<br />

innere Punkte das Schema <strong>aus</strong> Abbildung 3.14 verwendet. Eine kompliziertere Variante<br />

1 1<br />

die zu besseren Ergebnissen führt ergibt sich wenn man die Werte und <strong>aus</strong><br />

2 4<br />

1 1 2<br />

1 1 2<br />

Abbildung 3.14 durch cos und cos ersetzt.<br />

4 4 k 1<br />

2 4 k 1<br />

30


Abbildung 3.13 Exakte Berechnung <strong>von</strong> Randpunkten<br />

31<br />

Abbildung 3.14 Exakte Berechnung<br />

<strong>von</strong> Randpunkten


Kapitel 4<br />

Implementierung<br />

4.1 Allgemeines<br />

Das Programm wurde unter Linux in C++ entwickelt. Zum Einsatz kommen das Open<br />

Source Windows-Toolkit wxWidgets, OpenGL [27], die OpenGL shading language<br />

GLSL und die OpenGL Extension Wrangler Library GLEW.<br />

wxWidgets ermöglicht plattformunabhängige GUI-Programmierung. Zum jetzigen<br />

Zeitpunkt läuft FiberNavigator auf verschiedenen Linux-Distributionen, Microsoft<br />

Windows und MacOS.<br />

GLEW ist eine plattformunabhängige Bibliothek, die ermittelt, welche OpenGL-<br />

Funktionalität zur Verfügung steht und diese in einem einzelnen Header-File<br />

bereitstellt.<br />

4.2 Anzeige <strong>von</strong> mult<strong>im</strong>odalen MR-Daten<br />

Die Datensätze werden in drei Kategorien eingeteilt:<br />

- T1, T2 gewichtete Daten<br />

- Richtungs- bzw. Vektorinformationen<br />

- funktionelle Daten, Wahrscheinlichkeitskarten<br />

Die Anzeige der Daten erfolgt nach gängigen Konventionen, wie sie auch in<br />

vergleichbaren Programmen benutzt werden. T1, T2-Daten werden als Gr<strong>aus</strong>tufenbilder<br />

angezeigt, Richtungsinformationen als farbige Bilder, und funktionelle Daten sowie<br />

Wahrscheinlichkeitskarten als Farbkarten. Als Standardansicht dienen achsenparallele<br />

Navigationsschichten. Diese dienen der räumlichen Orientierung <strong>im</strong> Datensatz und der<br />

exakten Positionierung <strong>von</strong> Objekten.<br />

32


4.2.1 Shaderbasiertes Multitexturing<br />

Die Datensätze werden in OpenGL-3D-Texturen, die das gesamte Volumen umspannen,<br />

überführt. Alle Objekte können so texturiert werden, ohne dass Texturkoordinaten<br />

übergeben werden müssen. Dafür werden die Texturwerte für das jeweilige Voxel in<br />

einem Fragment-Shader ermittelt, welcher auch das Multi-Texturing, Clipping und<br />

Überblenden der Texturen übern<strong>im</strong>mt. Die Anzahl der möglichen Texturen wird dabei<br />

<strong>von</strong> der jeweils verwendeten Grafikkarte begrenzt, beträgt jedoch mindestens 10 auf<br />

gängigen Modellen. Über Schieberegler lassen sich ein Schwellwert für das Anzeigen<br />

und der Alphawert für das Überblenden für jede Textur einstellen.<br />

Die Ermittlung des Farbwertes eines Fragments erfolgt iterativ. Hierbei wird die<br />

jeweilige Textur nur berücksichtigt wenn der Betrag des Farbwertes größer als der<br />

eingestellte Schwellwert ist. Ist dies der Fall, wird der Texturwert abhängig vom<br />

eingestellten Alphawert zum Farbwert des Fragments addiert.<br />

Abbildung 4.1 Linkes Bild T1-Gr<strong>aus</strong>tufenbild überlagert mit Wahrscheinlichkeitskarte, mittleres Bild FA als<br />

Gr<strong>aus</strong>tufenbild, rechtes Bild FA als Farbkarte<br />

Abbildung 4.1 zeigt die Darstellung verschiedener Datensätze auf einem axialen<br />

Schnitt. Links ist ein T1 Gr<strong>aus</strong>tufenbild überlagert <strong>von</strong> einer Wahrscheinlichkeitskarte<br />

die durch eine Farbkarte repräsentiert wird. Diese Farbkarte entspricht der Aufnahme<br />

einer Wärmebildkamera. Hohe Werte werden gelb bis rot dargestellt, niedrige grün bis<br />

dunkelblau. Es kann <strong>aus</strong> mehreren vordefinierten Farbkarten gewählt oder eigene<br />

hinzugefügt werden.<br />

33


Abbildung 4.3 Wahrscheinlichkeitskarte als Farbkarte interpoliert (links) und nicht interpoliert (rechts)<br />

35


4.3 Fasern<br />

Kern des Programms ist die interaktive Auswahl interessanter Faserbündel. Wichtig für<br />

die Akzeptanz der Anwender ist die gefühlte Geschwindigkeit, mit der die Navigation<br />

<strong>im</strong> Datensatz und die Auswahl der Fasern erfolgt. Die zwei Hauptfaktoren sind dabei<br />

der Test, welche Linien <strong>von</strong> den gegenwärtig aktiven Auswahlwerkzeugen erfasst<br />

werden und das Rendern der Linien in OpenGL. Da ersteres allein auf der CPU<br />

berechnet wird, sind geeignete Datenstrukturen notwendig um diesen Test zu<br />

beschleunigen. Für das Rendern der Linien bietet OpenGL mit vertex buffer objects<br />

beziehungsweise vertex arrays Funktionalität, die die Möglichkeiten moderner<br />

Graphikhardware <strong>aus</strong>nutzt.<br />

Um die gewünschte Interaktivität zu erreichen, ist es nicht möglich eine Region of<br />

Interest (ROI) zu definieren und die da<strong>von</strong> <strong>aus</strong>gehenden Fasern in Echtzeit zu<br />

berechnen. Vielmehr wird mit einem geeigneten Tracking-Algorithmus eine globale<br />

Berechnung aller möglichen Fasern vorgenommen und als Menge <strong>von</strong> Punkten und die<br />

Fasern bildenden Punktindizes übergeben. Dazu wird in der weißen <strong>Gehirn</strong>substanz in<br />

jedem Voxel eine Stromlinie gestartet. Dieses Vorgehen erzeugt je nach Auflösung des<br />

Datensatzes eine große Menge Fasern. Im Fall des mir zur Verfügung stehenden<br />

Testdatensatzes sind dies ca. 400 000 Linien bestehend <strong>aus</strong> ca. 29 Millionen Punkten.<br />

Aus dieser Menge an Fasern werden mit geeigneten Selektionswerkzeugen die<br />

interessanten <strong>aus</strong>gewählt. Ein hybrider Ansatz <strong>aus</strong> rechteckigen Auswahlboxen [28] und<br />

beliebig geformten Regionen, gegeben durch funktionelle Datensätze und<br />

Wahrscheinlichkeitskarten, hat sich dabei als sinnvoll erwiesen. Sowohl die ROI als<br />

auch die top-level Auswahlboxen können mit weiteren Auswahlboxen logisch verknüpft<br />

werden.<br />

Zur Gewinnung der Daten wurden hochauflösende DTI Messungen mit einem Siemens<br />

Trio Scanner (1.7mm isotrop, 60 Richtungen, b=1000s/mm 2 , GRAPPA/2, NEX=3)<br />

durchgeführt. Nach Bewegungskorrektur und Registrierung auf die T1-Anatomie<br />

wurden die Diffusionstensoren berechnet. Aus diesen Daten werden die Fasern werden<br />

mit MedINRIA [29] berechnet. Die Anzahle der erzeugten Fasern ist abhängig <strong>von</strong> der<br />

gewählten Auflösung des DTI-Bildes. Bei einer Interpolation auf 1 mm entstehen die<br />

o.a. 400 000 Fasern. Mit einer gröberen Auflösung kann ein entsprechend <strong>aus</strong>gedünnter<br />

Datensatz erzeugt werden.<br />

36


4.3.1 Auswahl mittels Box<br />

Wichtig für die Auswahl mittels Boxen ist intuitive Positions- und Größenveränderung,<br />

klare visuelle Veranschaulichung der Funktion, sowie einfache Verknüpfung mittels<br />

logischer Funktionen. Die Boxen werden in Saat- oder Masterboxen und<br />

Verfeinerungsboxen unterschieden.<br />

Die hellblau gezeichneten Boxen, <strong>im</strong> Weiteren als Masterboxen bezeichnet, fungieren<br />

als Saatregion für die Linienselektion (Abbildung 4.4). Alle Linien, die über mindestens<br />

einen Punkt innerhalb des Volumens der Box verfügen, werden <strong>aus</strong>gewählt.<br />

Abbildung 4.4 Faserselektion mit einer Masterbox<br />

37


Für unsere Zwecke ist es jedoch nötig diese recht grobe Auswahl weiter zu verfeinern.<br />

Dazu können weitere Boxen mit einer Masterbox mittels der logischen Funktion UND<br />

und Nicht-UND verknüpft werden. Abbildung 4.5 zeigt die Verknüpfung der in<br />

Abbildung 4.4 gezeigten Masterbox mit einer UND-Box, um Fasern <strong>aus</strong>zuwählen, die<br />

durch zwei best<strong>im</strong>mte Region verlaufen, und Abbildung 4.6 eine weitere Verknüpfung<br />

mit einer Nicht-UND-Box um unerwünschte Fasern <strong>aus</strong>zublenden.<br />

Abbildung 4.5 Faserselektion mit Masterbox verfeinert durch eine UND-Box<br />

Abbildung 4.6 Faserselektion mit Masterbox verfeinert durch eine UND-Box<br />

und Entfernung unerwünschter Fasern mit NICHT-Box<br />

38


4.3. 2 kd-Baum<br />

Nach dem Laden des Faserdatensatzes wird für die Punktmenge ein kd-Baum [2]<br />

aufgebaut. Dieser ermöglicht die schnelle Entscheidung ob sich ein Punkt in einem<br />

beliebigen rechtwinkligen, achsenparallelen Volumen befindet. Bei Erstellung, Lage-<br />

oder Größenveränderung einer Auswahlbox wird für jeden Punkt des Faserdatensatzes<br />

getestet ob er sich innerhalb des Volumens der Box befindet. Ist dies der Fall, wird in<br />

einer invertierten Liste der Index der zu diesem Punkt gehörigen Linie nachgeschlagen<br />

und die Linie in einem Bitfeld als <strong>aus</strong>gewählt markiert.<br />

Abbildung 4.8 Die besuchten Knoten des kd-Baum für die Auswahl des cingulum [2]<br />

40


4.3. 3 Auswahl über ROI<br />

Der Nachteil an der Auswahl mittels Boxen ist ihre starre geometrische Form, die es<br />

stellenweise doch recht umständlich gestaltet interessante Regionen zu modellieren.<br />

Desweiteren setzt sie a priori Wissen über den Faserverlauf vor<strong>aus</strong>. Die Modellierung<br />

und Manipulation beliebig geformter Regionen in 3D gestaltet sich jedoch sehr<br />

aufwendig.<br />

Eine Möglichkeit die Auswahl auf beliebig geformte Regionen <strong>aus</strong>zudehnen bieten<br />

funktionelle Datensätze, zum Beispiel <strong>aus</strong> Wahrscheinlichkeitskarten oder fMRT. In<br />

diesen Datensätzen ist jedem Voxel ein skalarer Wert zwischen 0 und 1 zugewiesen. Für<br />

jeden Punkt <strong>im</strong> Faserdatensatz wird ein Schwellwert vom Wert des zugehörigen Voxels<br />

abgezogen. Ist das Ergebnis größer als Null, wird die zugehörige Linie als aktiv<br />

markiert. Der Schwellwert kann interaktiv über einen Regler verändert werden, so dass<br />

nur Regionen mit einer gewissen Wahrscheinlichkeit oder einer besonders starken<br />

Aktivierung als Saatregionen der Linien gewählt werden.<br />

Abbildung 4.9 Iso-Oberfläche auf Wahrscheinlichkeitskarte<br />

41


Abbildung 4.9 zeigt eine Iso-Oberfläche auf einer Wahrscheinlichkeitskarte mit einem<br />

gewählten Schwellwert <strong>von</strong> 0,6. In Abbildung 4.10 werden die Regionen mit der<br />

stärksten Aktivierung in einem fMRT-Datensatz zur Auswahl herangezogen.<br />

Abbildung 4.10 Faserselektion mit Wahrscheinlichkeitskarte<br />

42


4.3. 4 Farbgebung<br />

Oftmals ist es wichtig zusätzlich zur räumlichen Lage noch andere Information<br />

darzustellen. Bevorzugtes Mittel ist dabei Farbgebung. Fasern können <strong>im</strong><br />

FiberNavigator auf unterschiedliche Weise eingefärbt werden. Dies ist:<br />

- Richtungsvektor zwischen Start- und Endpunkt (globale Richtung)<br />

(Abb.4.11)<br />

- Tangentenvektor (lokale Richtungsfarbgebung) (Abb.4.12)<br />

- manuelle Färbung selektierter Faserbündel (Abb.4.13)<br />

- Farbkarte auf selektierten skalaren Daten (Abb.4.14)<br />

Abbildung 4.11 Globale Färbung Abbildung 4.12 Lokale Färbung<br />

Abbildung 4.13 Manuelle Färbung Abbildung 4.14 Färbung mit FA<br />

43


4.3.5 Rendering<br />

Das Zeichnen der Linien erfolgt über den OpenGL-Befehl GL_LINE_STRIP. Um die<br />

Anzahl der Funktionsaufrufe zu vermindern und die Fähigkeiten moderner Grafikkarten<br />

<strong>aus</strong>zunutzen werden Vertex Buffer Objects (VBO) [30] eingesetzt. Vertex Buffer<br />

Objects sind Teil des OpenGL Standards seit Version 1.5, welcher 2003 vorgestellt<br />

wurde. Dafür werden die verwendeten Felder für Positionen der Punkte, Normalen und<br />

Farben in den Grafikkartenspeicher kopiert. Der Befehl zum Zeichnen einer Linie<br />

benötigt dann nur den Startindex und die Anzahl der Punkte. Für ältere Grafikkarten,<br />

auf denen VBO’s nicht zur Verfügung stehen, wird auf Vertex Arrays zurückgegriffen.<br />

Hierbei werden die verwendeten Felder, für Lesezugriffe opt<strong>im</strong>iert, <strong>im</strong> Hauptspeicher<br />

abgelegt. Der Funktionsaufruf zum Zeichnen einer Linie gleicht dem für VBO’s.<br />

Beleuchtung ist wichtig für die räumliche Wahrnehmung dreid<strong>im</strong>ensionaler Strukturen.<br />

Die Abbildung 4.15 und 4.16 zeigen das gleiche Faserbündel unbeleuchtet und<br />

beleuchtet. Wie man <strong>im</strong> linken Bild sieht, erscheinen die unbeleuchteten Linien als<br />

homogene Masse, während <strong>im</strong> beleuchteten Fall Strukturen zu erkennen sind.<br />

Für Linien wird dabei die Standard-OpenGL-Beleuchtung verwendet. Zur<br />

Vereinfachung wird hier die Tangente der Linie an jedem Vertex als Normale<br />

übergeben. Die Lichtquelle befindet sich <strong>im</strong> Punkt des Betrachters, was man sich auch<br />

als Helmlampe vorstellen kann.<br />

Abbildung 4.15 Unbeleuchtete Fasern Abbildung 4.16 Beleuchtete Fasern<br />

44


dessen Eckpunkte jeweils konstanten Abstand zur ursprünglichen Linie haben, also ein<br />

Band konstanter Breite. Um den Eindruck einer Röhre zu erzeugen, wird dieses Band<br />

mit einer 1D-Textur, deren Helligkeitsverlauf der Sinusfunktion entspricht, texturiert.<br />

Im Gegensatz zur ursprünglichen Beschreibung des Verfahrens in [8] wird in der hier<br />

verwendeten Implementierung die Textur nicht durch OpenGL übergeben sondern<br />

algorithmisch <strong>im</strong> Fragment-Shader erzeugt.<br />

Abbildung 4.18 Konstruktion des Quadstrips, entsprechend der Linienpunkte werden Eckpunkte<br />

für den Quadstrip generiert<br />

4.3.7 Betrachtung des Speicherverbrauches<br />

Schnelles Rendern und Interaktion werden <strong>im</strong> Normalfall mit erhöhtem<br />

Speicherverbrauch erkauft. Anhand des Testdatensatzes mit ca. 400.000 Fasern und ca.<br />

29 Millionen Punkten möchte ich kurz den Speicherverbrauch diskutieren. Hierbei gehe<br />

ich <strong>von</strong> 4 Byte pro int und float <strong>aus</strong>.<br />

Für das Rendern der Linien werden 3 Arrays <strong>aus</strong> jeweils 3 float-Werten, pro Punkt<br />

vorgehalten. Dies bedeutet 36 Byte pro Punkt und ca. 1.1 Gigabyte für den gesamten<br />

Datensatz. Der kd-Baum und die invertierte Liste der zu jeden Punkt gehörigen Linie<br />

werden jeweils in einem Integer-Array gespeichert, was zusätzlich ca. 230 MB<br />

verbraucht. Für den gesamten Datensatz, jede Auswahlbox und jede Gruppe verknüpfter<br />

46


Boxen wird jeweils ein Bitfeld der Größe der Anzahl Linien angelegt. Dies verbraucht<br />

bei opt<strong>im</strong>aler Speicherung ca. 50k Byte pro Bitfeld. Da <strong>im</strong> Gegensatz zu Bytedaten für<br />

den Zugriff auf die einzelnen Bit Maskierungs- und Verschiebeoperationen notwendig<br />

sind, ist hier sogar noch Opt<strong>im</strong>ierungspotenzial auf Kosten <strong>von</strong> zusätzlichem<br />

Speicherverbrauch vorhanden.<br />

Es ist zu sehen, dass allein der Faserdatensatz mit der nicht unüblichen Anzahl <strong>von</strong> 10-<br />

15 Auswahlboxen circa 1.5 GB verbraucht. Sind noch weitere Datensätze geladen,<br />

werden leicht die in heutigen Arbeitsplatzrechnern verwendeten 2 GB erreicht. Durch<br />

Auslagerungsvorgänge ist dann meist kein angenehmes Arbeiten mehr möglich. Es<br />

empfiehlt sich daher die Positionierung der Auswahlboxen und Schnittebene mit einem<br />

<strong>aus</strong>gedünnten Faserdatensatz vorzunehmen.<br />

47


4.4 Isoflächen<br />

Die Rekonstruktion einer Oberfläche <strong>aus</strong> den Skalardaten der T1- oder T2-Scans ist eine<br />

beliebte Technik. Hierbei ist zu beachten, dass natürlich nur drei Regionen sinnvolle<br />

Ergebnisse liefern. Diese sind die Übergänge <strong>von</strong> Umgebung zu Gesichtsgewebe, das<br />

<strong>Gehirn</strong> umgebende Flüssigkeit zu grauer Materie und graue Materie zu weißer Materie.<br />

Außerdem können Iso-Oberflächen <strong>aus</strong> Wahrscheinlichkeitskarten (Abbildung 4.19,<br />

links) erzeugt werden. Dies ergibt eine dreid<strong>im</strong>ensionale <strong>Visualisierung</strong> der Lage der<br />

interessanten Regionen <strong>im</strong> <strong>Gehirn</strong>. So erzeugte Oberflächen <strong>aus</strong> Daten <strong>aus</strong> dem<br />

probabilistischen Tracking können mit der Faserrichtung texturiert werden und ergeben<br />

eine realistischere Ansicht der Faserbündel (Abb.4.19, rechts). Auch können so<br />

Regionen, die als Saatregionen für die Faser<strong>aus</strong>wahl verwendet werden, sichtbar<br />

gemacht werden.<br />

Abbildung 4.19 Iso-Oberfläche auf Wahrscheinlichkeitskarte eingefärbt mit<br />

Eigenvektorrichtung (links)und zusätzlich texturiert mit LIC (rechts)<br />

Für die Erzeugung der Oberfläche kommt der 1987 <strong>von</strong> Lorensen und Cline vorgestellte<br />

Marching Cubes Algorithmus zum Einsatz [8]. Der zur Erstellung verwendete Iso-Wert<br />

kann über einen Schieberegler verändert werden. Die Lage und Größe der zu<br />

erzeugenden Iso-Fläche kann damit zum Beispiel den zur Anzeige verwendeten<br />

Schwellwerten angeglichen werden.<br />

48


4.4.1 Verbesserung<br />

Durch Messfehler und R<strong>aus</strong>chen <strong>im</strong> Datensatz entstehen bei der Erstellung der<br />

Oberfläche Artefakte, die sich als optisch störend erweisen (Abbildung 4.20). Um diese<br />

zu vermeiden wurden zwei einfache Verfahren <strong>im</strong>plementiert.<br />

Abbildung 4.20 Artefakte nach Erstellung einer Iso-Oberfläche auf T1-Daten<br />

Im Ersten wird der Datensatz, auf dem die Oberfläche erzeugt wird, vor der Erstellung<br />

der Oberfläche mit einem 3x3x3-Medianfilter geglättet. Dies erzeugt ein optisch<br />

ansprechendes Ergebnis, in dem so gut wie keine Artefakte enthalten sind. Leider<br />

„verfälscht“ dieses Verfahren die Werte <strong>im</strong> Datensatz, so dass zwar optisch gute Bilder<br />

entstehen, die Oberfläche aber etwas <strong>von</strong> der realen Position abweicht (Abbildung<br />

4.21).<br />

49


Abbildung 4.21 Iso-Oberfläche auf T1-Daten, die vorher mit Medianfilter geglättet wurden<br />

Im zweiten Verfahren werden nach der Oberflächenerstellung die Dreiecke<br />

entsprechend ihrer Zugehörigkeit zu zusammenhängenden Objekten geclustert und nur<br />

das größte Objekt beibehalten. Da dieses Verfahren die Nachbarschaftsinformation der<br />

Dreiecke benutzt, funktioniert es sehr gut für frei <strong>im</strong> Raum befindliche Artefakte,<br />

versagt aber bei Verunreinigungen in Oberflächennähe, wo Verbindungen zur<br />

Oberfläche bestehen.<br />

50


Abbildung 4.22 Iso-Oberfläche auf T1-Daten mit Artefaktentfernung nach der Erstellung<br />

51


4.5 Schnittfläche<br />

Für eine Klingler-Dissektion an einem <strong>Gehirn</strong> wird dieses an einer Ebene geschnitten<br />

und dann weitere <strong>Gehirn</strong>substanz entfernt, um die interessanten Faserbündel<br />

freizulegen. In unserem virtuellen Fall bedeutet dies, die initiale Schnittfläche wird<br />

durch den Nutzer vorgegeben und automatisch anhand der selektierten Faserbündel<br />

verformt. Da dies nicht in jedem Fall opt<strong>im</strong>ale Ergebnisse liefert ist es möglich die<br />

Schnittfläche dann noch manuell zu verändern.<br />

Für die Erzeugung der Schnittfläche wurde die NURBS-Repräsentation gewählt, da sie<br />

- wenige Kontrollpunkte benutzt und damit leicht zu speichern ist,<br />

- nachträgliches Editieren erlaubt,<br />

- effiziente Methoden des Renderns existieren.<br />

Die initiale Schnittebene wird durch die Position einer Navigationsschicht vorgegeben.<br />

Darauf werden in regelmäßigen Abständen de Boor Kontrollpunkte platziert. Nun wird<br />

in einem vorgegebenen Radius um jeden Kontrollpunkt die Punktmenge der selektierten<br />

Faserbündel analysiert und der Schwerpunkt dieser Punktmenge interpoliert. Die de<br />

Boor Kontrollpunkte werden dann auf den jeweiligen Schwerpunkt verschoben. Dies<br />

erzeugt eine glatte Oberfläche, die sich der selektierten Faserstruktur gut anpasst.<br />

Zur Opt<strong>im</strong>ierung des erreichten Ergebnisses ist es möglich, die Kontrollpunkte<br />

nachträglich zu verschieben und weitere einzufügen.<br />

Aus der Spline-Repräsentation der Schnittfläche wird durch regelmäßige Abtastung eine<br />

Vergitterung erzeugt. Um die gewünschte Interaktivität zu erreichen, wird in der<br />

Editierphase ein relativ grob aufgelöstes Dreiecksgitter verwendet. Die benötigte<br />

Verfeinerung für die LIC-Texturierung erfolgt durch mehrmaliges Anwenden des Loop<br />

Subdivision Algorithmus.<br />

4.5.1 Clipping einer Oberfläche<br />

Um zusätzlich den Eindruck eines Schnittes durch ein <strong>Gehirn</strong> zu erzielen, werden Iso-<br />

Oberflächen an der Schnittfläche abgeschnitten (Abbildung 4.23). Während dies für<br />

ebene Flächen mittels OpenGL Befehlen einfach möglich ist, ist dies für beliebig<br />

verformte Oberflächen nicht der Fall. Von Vorteil ist jedoch, dass die Fläche eine<br />

generelle Ausrichtung entlang einer Achse hat und zwei Flächenpunkte auf dieser<br />

52


Achse nicht übereinanderliegen können. Damit ist es möglich die Fläche in eine<br />

Tiefentextur zu rendern und diese dem Fragment-Shader für die Iso-Oberfläche zu<br />

übergeben. Der prüft, ob der Koordinatenteil dieser Achse über diesem Tiefenwert liegt<br />

und verwirft die entsprechenden Fragmente.<br />

Abbildung 4.23 Clipping <strong>von</strong> Iso-Oberfläche an Schnittfläche<br />

53


Kapitel 5<br />

Ergebnisse<br />

5.1 Beispiel einer virtuellen Klingler-Dissektion<br />

Abbildung 5.1 Endergebnis der virtuellen Klingler-Dissektion<br />

Abbildung 5.1 zeigt Ergebnis der Anwendung des Verfahrens zur Erzeugung einer<br />

virtuellen Klingler-Dissektion. In diesem Abschnitt sollen die Schritte, die zu diesem<br />

Endergebnis führen aufgezeigt werden.<br />

54


Obwohl es durch<strong>aus</strong> möglich ist, eine LIC-texturierte Schnittfläche nur mit einem<br />

Eigenvektordatensatz zu erzeugen, empfiehlt es sich noch mindestens ein T1-Bild und<br />

einen Faserdatensatz zu laden.<br />

Erster Schritt ist die Auswahl des gewünschten Faserbündels. Abbildung 5.2 zeigt eine<br />

Auswahl der cortico-cerebellaren Fasern. Zwei Nicht-Boxen dienen der Entfernung<br />

ungewünschter Fasern.<br />

Abbildung 5.2 Faser<strong>aus</strong>wahl (cortico-cerebellaren Fasern)<br />

Für den initialen Schnitt wird nun die sagittale Navigationsebene in die Nähe des<br />

gewählten Faserbündels bewegt. Abbildung 5.3 zeigt die Positionierung der<br />

Navigationsebene, so dass Fasern sowohl vor und auch hinter der Schnittebene liegen.<br />

Ausgehend <strong>von</strong> der Navigationsebene wird eine verformte Schnittfläche erzeugt, die<br />

bereits dicht an den <strong>aus</strong>gewählten Faserbündeln liegt (Abbildung 5.4).<br />

55


Abbildung 5.3 Positionierung der Navigations- Abbildung 5.4 Erzeugte Schnittfläche<br />

ebene<br />

Über einen Schieberegler kann die Lage der Kontrollpunkte weiter verändert werden,<br />

was die Verformung der Fläche global modifiziert.<br />

Abbildung 5.5 Editiermodus für die Schnittfläche<br />

56


Ist dies nicht <strong>aus</strong>reichend können die Punkte <strong>im</strong> Editiermodus separat verschoben oder<br />

zusätzliche hinzugefügt werden.<br />

Nachdem die Position der Schnittfläche fixiert wurde kann die LIC-Textur hinzugefügt<br />

werden (Abbildung 5.6). Dieser Vorgang dauert auf Grund <strong>von</strong> mehrmaligem<br />

Anwenden des Loop-Subdivision Algorithmus und der Stromlinienintegration ca. 20-30<br />

Sekunden. Im rechten unteren Bereich wurde keine LIC-Textur gerendert, da keine<br />

Vektordaten für diese Region (Kleinhirn) vorliegen.<br />

Abbildung 5.6 Verformte Schnittfläche texturiert mit T1 und LIC<br />

57


5.2 Anwendungen<br />

5.2.1 Vergleichende Morphometrie eines Faserbündels für<br />

verschiedene Probanden<br />

Der exakte Verlauf der verschiedenen Faserbündel, deren Form und Stärke<br />

unterscheidet zwischen den verschiedenen Versuchspersonen. Eine Studie der normalen<br />

Variabilität eines Bündels erlaubt u.a. die Untersuchung <strong>von</strong> anormalen Situationen bei<br />

Patienten. Abbildung 5.7 zeigt den Vergleich des Verlaufs des Fasciculus Uncinatus<br />

(UNC) in sechs Versuchspersonen. Das Faserbündel wurde dabei jeweils mit zwei<br />

„UND“ verknüpften Auswahlboxen best<strong>im</strong>mt.<br />

Abb. 5.7 Vergleich des Verlaufs des Fasciculus Uncinatus (UNC) in sechs Versuchpersonen.<br />

58


5.2.2 Segmentierung <strong>von</strong> Unterkomponenten eines Faserbündels<br />

Durch die logische Verknüpfung mehrere Boxen lassen sich Unterkomponenten <strong>von</strong><br />

Faserbündeln analysieren. Abbildung 5.8 zeigt die Zerlegung des Fasciculus<br />

Longitudinales Superior (SLF) in einen horizontalen (grün) und vertikalen (gelb)<br />

Anteil. Der horizontale Anteil wurde durch eine Auswahlbox <strong>im</strong> inferioren<br />

Parietallappen und <strong>im</strong> ventralen Prä-motorischen Kortex gewählt. Der vertikale Anteil<br />

entsteht durch Kombination der parietalen Box mit einer Auswahlbox <strong>im</strong><br />

Schläfenlappen. Durch Verknüpfung beider Endboxen entsteht der durchgehende<br />

Anteil, der auch als Fasciculus Arcuatus (AF) bezeichnet wird.<br />

Abb. 5.8 <strong>Visualisierung</strong> der Unterkomponenten des SLF vor einem sagittalen<br />

Schnittbild der farbkodierten und FA gewichteten Eigenvektorrichtung.<br />

5.2.3 <strong>Visualisierung</strong> <strong>von</strong> Eigenschaften der weißen Masse auf<br />

Faserbündeln<br />

Die Untersuchung der FA-Werte entlang eines Faserbündels kann z.b. zur Studie des<br />

Entwicklungsstadiums eines Faserbündels verwendet werden. Dazu wurden 7-jährige<br />

Kinder mit einer Gruppe <strong>von</strong> Erwachsenen verglichen und Bereiche entlang einzelner<br />

Faserbündel identifiziert, die reduzierte FA-Werte bei Kindern zeigten.<br />

59


Abb. 5.9 Farbkodierte FA-Werte entlang der Fasern des internen Kapselsystems.<br />

5.2.4 Evaluierung <strong>von</strong> Ultra-Hochfeld 7-Tesla diffusionsgewichteten<br />

Daten<br />

Die Entwicklung neuer Bildgebungssequenzen auf dem 7-Tesla MR-Tomographen<br />

erfordern eine schnelle <strong>Visualisierung</strong> einzelner Faserbündel zur Evaluierung der<br />

Bildqualität. Abbildung 5.10 zeigt ein Beispiel einer kombinierten Darstellung mehrerer<br />

Faserbündel in Kombination mit anatomischen Schnittbildern erzeugt <strong>aus</strong> 7-Tesla DTI-<br />

Daten die mit hoher räumlicher Auflösung ( 1,4x1,4x1,4 mm 3 ) aufgenommen wurden.<br />

Abb. 5.10 Faserbündel <strong>aus</strong> 7 Tesla DTI Bildern.<br />

60


5.2.5 Analyse der anatomischen Verbindungen zwischen funktionell<br />

aktivierten Hirnregionen<br />

Die Darstellung der Faserverbindungen zwischen funktionell aktivierten Hirnregionen<br />

ermöglich die Identifikation <strong>von</strong> Netzwerken verknüpfter Regionen die potentiell in bei<br />

der Verarbeitung einer Aufgabe <strong>im</strong> <strong>Gehirn</strong> zusammenarbeiten. Die Abbildung 5.11.<br />

zeigt die Faser<strong>aus</strong>wahl mit einer <strong>aus</strong> fMRT Daten erzeugten Auswahlregion (rote<br />

Isoflächen) die unter anderem den linken und rechten auditiven Kortex beinhaltet. Die<br />

Fasern die durch diese Regionen verlaufen werden zusammen mit einer transparenten<br />

Offsetfläche und einem axialen Schnitt gezeigt.<br />

Abb. 5.11 Faser<strong>aus</strong>wahl anhand <strong>von</strong> funktionell aktivierten Regionen ( rote Isoflächen)<br />

5.2.6 Mult<strong>im</strong>odale <strong>Visualisierung</strong> anhand <strong>von</strong> Iso-Oberflächen<br />

a) Funktionelle MRT Bilder müssen zusammen mit den anatomischen Strukturen<br />

visualisiert werden. Eine neue Möglichkeit ist die Darstellung der fMRT Daten als<br />

Farbtextur auf einer nach innen verschobenen Offsetfläche zur Hirnoberfläche, die mit<br />

der T1 texturiert ist. Eine zusätzliche Iso-Oberfläche der funktionell aktivierten Areale<br />

gibt zusätzliche Information über deren räumliche Anordnung und Ausdehnung.<br />

(Abbildung 5.12)<br />

61


Abb 5.12 Akustisch st<strong>im</strong>ulierte fMRT-Aktivierung sprachrelevanter Hirnareale<br />

b) Mit probabilistischer Traktografie erzeugte Konnektivitätskarten (Traktogramme)<br />

können als Iso-Oberflächen dargestellt werden. Abb. zeigt die kombinierte Darstellung<br />

der Traktogramme <strong>von</strong> drei Subregionen <strong>im</strong> inferioren Parietallappen. Die Startregionen<br />

sind umrandet. Die Faserbündel durchdringen die Offsetfläche und erlauben eine<br />

genaue Lokalisation der kortikalen Projektionen (rechts). Eine transparente Iso-<br />

Oberfläche der T1-Anatomie zeigt den 3D-Verlauf der Faserbündel und deren<br />

räumliche Anordnung (Abbildung 5.13).<br />

Abb. 5.13 Traktogramme <strong>von</strong> drei Startregionen <strong>im</strong> inferioren Parietallappen (umrandet).<br />

62


5.2.7 Analyse anatomischer Eigenschaften der weißen Substanz<br />

mithilfe der LIC-Texturierung<br />

Die virtuelle Klingler Dissektion erlaubt die <strong>Visualisierung</strong> <strong>von</strong> Strukturen der weißen<br />

Substanz auf nicht achsenparallelen gekrümmten Schnittflächen. Die LIC Texturierung<br />

der Oberfläche mit der Faserrichtung kombiniert mit deren Farbkodierung erlaubt die<br />

Untersuchung komplexer Fasersysteme. Abbildung 5.14 zeigt eine virtuelle Klingler<br />

Dissektion der sub-insularen weißen Substanz (rote Umrandung). Dabei zeigt sich eine<br />

Einteilung dieser Region in einen vorderen und hinteren Bereich mit unterschiedlichen<br />

Faserverläufen.<br />

Abb. 5.14 Virtuelle und post-mortem Dissektion der sub-insularen weißen Substanz und deren Verbindungen.<br />

63


5.2.8 Kombination mehrerer Faserbündel in der virtuellen Klingler<br />

Dissektion<br />

Viele Faserbündel liegen in engem räumlichen Bezug und können bei der virtuellen<br />

Klingler Dissektion effizient kombiniert visualisiert werden. Abb 5.15. zeigt den<br />

Verlauf <strong>von</strong> drei Faserbündeln, die wichtige Aufgaben in der Sprachverarbeitung haben<br />

und den Schläfenlappen mit dem Frontalhirn verbinden. Die gute Korrespondenz zu der<br />

post-mortem Fotographie (Ludwig, 1956) zeigt die Robustheit der Methode.<br />

Abb. 5.15 Klingler Dissektion (oben, Ludwig, 1956) und virtueller Schnitt des sprachrelevanten Fasersystems<br />

bestehend <strong>aus</strong> Fasciculus Longitudinales Superior (SLF, türkis, 1; 6); Fasciculus Uncinatus (UNC, gelb, 3);<br />

Fasciculus Occipitofrontalis Inferior (IFO, violett, 5)<br />

64


Kapitel 6<br />

6. Zusammenfassung und Ausblick<br />

Die effiziente Implementierung und die intuitiven Werkzeuge zur Navigation in<br />

Datensätzen und Auswahl <strong>von</strong> Faserbündeln ermöglicht es schon auf einem heute<br />

üblichen Standard-PC detailierte <strong>Gehirn</strong>strukturen zu erforschen. Die Kombination <strong>von</strong><br />

global <strong>im</strong>plementierter Faserkonstruktion und effizienten Auswahlwerkzeugen und<br />

leicht verständlichen booleschen Operationen führt zu so noch nicht vorhandenen<br />

Möglichkeiten der Darstellung <strong>von</strong> Faserbündeln. Wissenschaftler am MPI-CBS in<br />

Leipzig benutzen das Tool bereits zur Selektion <strong>von</strong> Faserbündeln in unterschiedlichen<br />

Datensätzen <strong>aus</strong> <strong>Gehirn</strong>scans. Das Einfärben der Faserbündel mit gemessenen<br />

Parametern der weißen <strong>Gehirn</strong>substanz wie der fraktionellen Anisotropie ermöglicht<br />

quantitative Darstellung der Gewebeeigenschaften und statistische Auswertungen der<br />

<strong>Gehirn</strong>strukturen. Die mult<strong>im</strong>odale Integration <strong>von</strong> DTI, MRT und fMRT Bildern<br />

komplettiert das System.<br />

Die Berechnung einer Fläche, welche den <strong>aus</strong>gewählten Nervenbahnen folgt, erzeugt<br />

eine virtuelle Klingler-Dissektion. Die Methode deformiert eine Schnittfläche so, dass<br />

diese lokal parallel zu den gewählten Faserbündeln verläuft. Mittels dieser<br />

Schnittfläche, ist es möglich, die die Fasern umgebenden anatomische Strukturen und<br />

ihre räumlichen Verhältnisse zu zeigen. Typische Faserbündel <strong>im</strong> <strong>Gehirn</strong> sind in ihrem<br />

zentralen Teil kompakt und fächern sich an den Enden in den kortikalen Regionen auf.<br />

Die Schnittfläche wird daher lokal an den berechneten Schwerpunkt der selektierten<br />

Fasern angeschmiegt. Die <strong>Gehirn</strong>substanz vor der Fläche wird abgeschnitten wie dies<br />

auch in einem realen Schnitt durch das <strong>Gehirn</strong> zur Erzeugung eines medizinischen<br />

Präparates erfolgen würde. Das Angleichen der Schnittfläche an die selektierten Fasern<br />

erzeugt <strong>im</strong>mer ein interpretierbares Ergebnis. Die Qualität des Resultates hängt<br />

natürlich <strong>von</strong> der Qualität der Selektion der Faserbündel ab. Durch die interaktive<br />

Möglichkeit der Opt<strong>im</strong>ierung der Schnittfläche ist dies jedoch für den Anwender leicht<br />

verständlich und mit wenig Übung möglich.<br />

Die Texturierung der Schnittfläche mit der Faserrichtung bietet dem Anwender einen<br />

guten Eindruck des Faserverlaufs auf der Fläche. Sie ermöglicht einen intuitiven<br />

Eindruck der Faserstrukturen und bietet ein besseres Verständnis der sich auffächernden<br />

Faserstrukturen, die mit normaler Faserdarstellung schwieriger zu analysieren sind.<br />

Die breite Auswahl an Anwendungsszenarien zeigt, dass durch die Kombination<br />

verschiedener <strong>Visualisierung</strong>smethoden Ergebnisse erreicht werden, die weit über die<br />

virtuelle Klingler-Dissektion hin<strong>aus</strong>gehen. Für die Zukunft ist eine Weiterentwicklung<br />

65


der Software geplant um weitere Datenmodalitäten zu unterstützen. Fokus wird dabei<br />

wie bisher auf Interaktivität auf handelsüblichen Computern <strong>aus</strong> dem Consumerbereich<br />

liegen.<br />

Das Verfahren der virtuellen Klingler-Dissektion wurde zu den Konferenzen EuroVis<br />

2009 [30] und Human Brain Mapping 2009 eingereicht [31].<br />

66


Anhang A<br />

Quelltextfragmente<br />

A.1 Methode zum Erzeugen eines kd-Baums auf einem<br />

STL Vector<br />

// left, right boundaries of tree<br />

// axis: 0-2 alignment of points for sort<br />

void KdTree::buildTree(int left, int right, int axis)<br />

{<br />

// abort condition, we're at a leaf<br />

if (left >= right) return;<br />

// find the root node for this branch<br />

int div = ( left+right )/2;<br />

// find median<br />

std::nth_element( m_tree.begin()+left,<br />

m_tree.begin()+div,<br />

m_tree.begin()+right,<br />

lessy( m_pointArray, axis ) );<br />

// build sub trees for booth sides<br />

buildTree(left, div-1, (axis+1)%3);<br />

buildTree(div+1, right, (axis+1)%3);<br />

}<br />

struct lessy<br />

{<br />

float const * const data;<br />

const int pos;<br />

lessy( float const * const data, const int pos ):<br />

data( data ),pos( pos )<br />

{ }<br />

};<br />

bool operator()( const wxUint32& a, const wxUint32&b ) const<br />

{<br />

return data[ 3*a+pos ] < data[ 3*b+pos ];<br />

}<br />

Diese rekursive Funktion erzeugt eine als kd-Baum verwendbare Sortierung eines<br />

Indexarrays. Die Funktion wird mit den linken und rechten Grenzen und einer<br />

Startachse aufgerufen. Die eigentliche Arbeit übern<strong>im</strong>mt der STL-Befehl nth_element.<br />

Dieser erwartet drei Iteratoren sowie bei Bedarf eine benutzerdefinierte<br />

Vergleichsfunktion. nth_element sucht das gewählte n-te Element und sortiert das<br />

67


gesamte Array partiell, so daß alle Elemente vor dem gewählten n-ten Element kleiner<br />

sind und die Elemente dahinter größer. Da in unserem Fall die Sortierung der Punkte<br />

jeweils abwechselnd über die drei Achsen <strong>im</strong> Raum erfolgt, wird eine benutzerdefinierte<br />

Vergleichsfunktion benötigt und für jeden rekursiven Aufruf die aktuelle Achse<br />

übergeben.<br />

A.2 Rendering der Linien mit Vertex Buffer Objects<br />

Das Zeichnen der Stromlinien geschieht mittels Vertex Buffer Objects. Das folgende<br />

Quelltextfragment zeigt die dafür nötigen Funktionsaufrufe.<br />

Die drei Arrays m_pointArray, m_colorArray und m_normalArray enthalten die<br />

Punktinformationen, Farbwerte und Normalen.<br />

glGenBuffers(3, m_bufferObjects);<br />

glBindBuffer(GL_ARRAY_BUFFER, m_bufferObjects[0]);<br />

glBufferData(GL_ARRAY_BUFFER, sizeof(GLfloat)*m_countPoints*3,<br />

m_pointArray, GL_STATIC_DRAW );<br />

glBindBuffer(GL_ARRAY_BUFFER, m_bufferObjects[1]);<br />

glBufferData(GL_ARRAY_BUFFER, sizeof(GLfloat)*m_countPoints*3,<br />

m_colorArray, GL_STATIC_DRAW );<br />

glBindBuffer(GL_ARRAY_BUFFER, m_bufferObjects[2]);<br />

glBufferData(GL_ARRAY_BUFFER, sizeof(GLfloat)*m_countPoints*3,<br />

m_normalArray, GL_STATIC_DRAW );<br />

glEnableClientState(GL_VERTEX_ARRAY);<br />

glEnableClientState(GL_COLOR_ARRAY);<br />

glEnableClientState(GL_NORMAL_ARRAY);<br />

glBindBuffer(GL_ARRAY_BUFFER, m_bufferObjects[0]);<br />

glVertexPointer(3, GL_FLOAT, 0, 0);<br />

glBindBuffer(GL_ARRAY_BUFFER, m_bufferObjects[1]);<br />

glColorPointer (3, GL_FLOAT, 0, 0);<br />

glBindBuffer(GL_ARRAY_BUFFER, m_bufferObjects[2]);<br />

glNormalPointer (3, GL_FLOAT, 0, 0);<br />

for ( int i = 0 ; i < m_countLines ; ++i )<br />

{<br />

if (m_inBox[i] == 1)<br />

glDrawArrays(GL_LINE_STRIP, getStartIndexForLine(i),<br />

getPointsPerLine(i));<br />

}<br />

glDisableClientState(GL_VERTEX_ARRAY);<br />

glDisableClientState(GL_COLOR_ARRAY);<br />

glDisableClientState(GL_NORMAL_ARRAY);<br />

68


A.3 Shader-Code für Pseudo-Röhren<br />

vertex shader<br />

varying float tangent_dot_view;<br />

varying vec3 tangentR3;<br />

varying float s_param;<br />

varying vec4 myColor;<br />

void main()<br />

{<br />

// make clipping planes work<br />

gl_ClipVertex = gl_ModelViewMatrix * gl_Vertex;<br />

}<br />

vec3 tangent;<br />

float thickness = 0.005;<br />

tangentR3 = gl_Normal;<br />

tangent vector<br />

// transform our tangent vector<br />

tangent = (gl_ModelViewProjectionMatrix *<br />

vec4(gl_Normal,0.)).xyz;<br />

// store texture coordinate for shader<br />

s_param = gl_MultiTexCoord0.x;<br />

vec3 v = (gl_ModelViewMatrix * vec4(0., 0., -1., 0.)).xyz;<br />

vec3 offsetNN = cross(v, normalize(tangent.xyz));<br />

vec3 offset = normalize(offsetNN);<br />

tangent_dot_view = length(offsetNN);<br />

// transform position to eye space<br />

vec4 pos = ftransform();<br />

// add offset in y-direction (eye-space)<br />

pos.xyz += offset * (s_param * thickness);<br />

myColor = gl_Color;<br />

// store final position<br />

gl_Position = pos;<br />

69


fragment shader<br />

varying vec3 tangentR3; // Tangent vector in world space<br />

varying float s_param; // s parameter of texture [-1..1]<br />

varying float tangent_dot_view;<br />

varying vec4 myColor;<br />

uniform bool globalColor;<br />

/*<br />

* s<strong>im</strong>ple fragment shader that does rendering of tubes with diffuse<br />

illumination<br />

*/<br />

void main() {<br />

vec3 color;<br />

if (globalColor)<br />

color = abs(normalize(myColor.rgb));<br />

else<br />

color = abs(normalize(tangentR3));<br />

vec3 view = vec3(0., 0., -1.);<br />

float view_dot_normal = sqrt(1. - s_param * s_param) + .1;<br />

float s = (s_param + 1.) * 0.5; //< normalize in [0..1]<br />

gl_FragColor.rgb = clamp(view_dot_normal * (color + 0.15 * pow(<br />

view_dot_normal, 10.) * pow(tangent_dot_view, 10.) *<br />

vec3(1., 1.,<br />

1.)), 0., 1.); //< set the color of this fragment<br />

(i.e. pixel)<br />

gl_FragColor.a = 1.;<br />

}<br />

70


Anhang B<br />

Beschreibung des Nutzerinterface<br />

Abbildung B.1 Ansicht der Benutzeroberfläche<br />

Die Oberfläche (Abbildung B.1) ist in verschiedene Bereiche aufgeteilt. Den größten<br />

Anteil n<strong>im</strong>mt das Hauptanzeigefenster (1) ein. Standardmäßig sind hier die drei<br />

Navigationsschichten, texturiert mit den geladenen Datensätzen, zu sehen. Die drei<br />

Ansichten (2-4) bieten schnelle und genaue Navigation <strong>im</strong> Datensatz.<br />

Das Baum-Widget (5) zeigt allgemeine Informationen zu den geladenen Datensätzen,<br />

bietet Shortcuts zum Laden der Datensätze und listet die Auswahlboxen für Fasern und<br />

Kontrollpunkte der Schnittfläche. Über kontextsensitive Menüs können Boxen gelöscht,<br />

neue hinzugefügt und die Anzeigemodi der Boxen geändert werden.<br />

Das List-Widget (6) zeigt alle geladenen Datensätzen und die Einstellungen für diese.<br />

71


Rotation der Ansicht<br />

Bewegen der M<strong>aus</strong> bei gedrückter linker M<strong>aus</strong>taste<br />

Zoom<br />

Der Zoom lässt sich mittels M<strong>aus</strong>rad oder der „+“- und „-„-Taste verändern.<br />

Verschieben der Navigationsschichten<br />

Die Navigationsschichten können auf verschiedene Art bewegt werden.<br />

- durch Anfassen mit der rechten M<strong>aus</strong>taste und Verschieben der M<strong>aus</strong> in die<br />

gewünschte Richtung<br />

- durch Klick mit der linken M<strong>aus</strong>taste in eine der drei Navigationsansichten<br />

(2-4)<br />

- durch Veränderung der Schieberegler unter den Navigationsansichten<br />

Auswahlboxen<br />

Die Auswahlboxen werden <strong>im</strong> Baum-Widget (5) aufgelistet.(Abbildung B.2)<br />

Abbildung B.2 Listenansicht der Auswahlboxen<br />

Masterboxen werden hellblau, UND-Boxen grün und NICHT-Boxen rot hinterlegt und<br />

auch in dieser Farbe <strong>im</strong> Hauptanzeigefenster angezeigt. Bei Rechtsklick auf einen<br />

Eintrag öffnet sich ein Menu, über welches die Boxen umbenannt, sichtbar/unsichtbar<br />

geschaltet, aktiv/inaktiv geschaltet und gelöscht werden können.<br />

Durch Linksklick auf einen Eintrag <strong>im</strong> Baum-Widget oder Rechtsklick auf eine Box <strong>im</strong><br />

Hauptanzeigefenster wird diese Box <strong>aus</strong>gewählt. Zur Verdeutlichung wird die<br />

Transparenz der Box verringert.<br />

72


Folgende Tastatureingaben gelten für die <strong>aus</strong>gewählte Box:<br />

Cursor links/rechts - Verschiebung auf X-Achse um 1 Voxel<br />

Cursor oben/unten - Verschiebung auf Y-Achse um 1 Voxel<br />

Bild auf/ab - Verschiebung auf Z-Achse um 1 Voxel<br />

Strg+ Cursor links/rechts - Größenänderung auf X-Achse um 1 Voxel<br />

Strg+ Cursor oben/unten - Größenänderung auf Y-Achse um 1 Voxel<br />

Bild auf/ab - Größenänderung auf Z-Achse um 1 Voxel<br />

Shift + Cursor links/rechts - Verschiebung auf X-Achse um 5 Voxel<br />

Shift + Cursor oben/unten - Verschiebung auf Y-Achse um 5 Voxel<br />

Shift + Bild auf/ab - Verschiebung auf Z-Achse um 5 Voxel<br />

Shift+ Strg + Cursor links/rechts - Größenänderung auf X-Achse um 5 Voxel<br />

Shift+Strg + Cursor oben/unten - Größenänderung auf Y-Achse um 5 Voxel<br />

Shift+ Strg + Bild auf/ab - Größenänderung auf Z-Achse um 5 Voxel<br />

Entf - Löschen der Box<br />

Pos1 - klebt die Box an das Fadenkreuz, dies ermöglicht<br />

die genaue Positionierung über die<br />

Navigationssichten (2-4), ein nochmaliges Betätigen<br />

der Pos1-Taste löst diese Fixierung wieder<br />

Die Boxen können auch <strong>im</strong> Hauptanzeigefenster mit der rechten M<strong>aus</strong>taste angefasst<br />

und bei gedrückter rechter M<strong>aus</strong>taste verschoben werden. Wird dabei die Strg-Taste<br />

gehalten, bewirkt ein ziehen der M<strong>aus</strong> eine Größenänderung der Box.<br />

Liste der geladenen Datensätze<br />

Abbildung B.3 List-Widget für Datensätze mit Buttons zur Veränderung der Position der<br />

Datensätze in der List und Schiebreglern für Schwellwert und Alphawert<br />

73


In der Liste (Abbildung B.3) werden alle geladenen Texturen, triangulierte Oberflächen<br />

und Faserdatensätze angezeigt. Die Liste bietet außerdem Shortcuts zu über Menüs<br />

wählbare Funktionen. Über das Augen-Icon in der ersten Spalte kann das Rendering für<br />

alle Objekte ein- oder <strong>aus</strong>geschaltet werden. Ein Doppelklick auf den Namen (2. Spalte)<br />

schaltet für Texturen die lineare Interpolation ein bzw. <strong>aus</strong>. Der nichtinterpolierte<br />

Modus wird durch einen * hinter dem Namen gekennzeichnet.<br />

Mit den Buttons „up“ und „down“ wird die Position des <strong>aus</strong>gewählten Objektes in der<br />

Liste verändert. Dies ist unter anderem wichtig für das Überblenden der Texturen, wo es<br />

auf die Reihenfolge ankommt.<br />

Beschreibung der Toolbar-Buttons (Abbildung B.4)<br />

Abbildung B.4 Toolbar für die am häufigsten benutzten Funktion<br />

1 Einzelnen Datensatz oder abgespeicherte Szene laden<br />

2 Szene speichern; speichert die Pfade und Dateinamen der gegenwärtig geladenen<br />

Datensätze, Position und Status aller Auswahlboxen, sowie die Stützpunkte für<br />

die Schnittfläche<br />

3 Anzeige des axialen Schnittes ein- oder <strong>aus</strong>schalten<br />

4 Anzeige des koronaren Schnittes ein- oder <strong>aus</strong>schalten<br />

5 Anzeige des sagittalen Schnittes ein- oder <strong>aus</strong>schalten<br />

6 Ein- oder Ausschalten des Clippings am Datensatzrand<br />

7 Neue Auswahlbox am Schnittpunkt der Navigationsebenen erzeugen<br />

8 Anzeige aller Auswahlboxen ein- oder <strong>aus</strong>schalten, die Boxen sind für die<br />

Auswahl der Fasern <strong>im</strong>mer noch aktiv<br />

9 Ausgewählte Box aktiv oder inaktiv schalten<br />

10 Neue Schnittfläche an Position der sagittalen Navigationsebene erzeugen.<br />

11 Modus zum manuellen Hinzufügen <strong>von</strong> Stützpunkten für die Schnittfläche ein-<br />

oder <strong>aus</strong>schalten<br />

74


12 Randpunkte der Schnittfläche nach links verschieben<br />

13 Randpunkte der Schnittfläche nach rechts verschieben<br />

14 Ausgewähltes Objekt einfärben, dies kann ein selektiertes Faserbündel oder eine<br />

triangulierte Oberfläche sein<br />

15 Beleuchtung der Fasern ein- oder <strong>aus</strong>schalten<br />

16 Iso-Oberfläche für <strong>aus</strong>gewählten Skalardatensatz erzeugen<br />

75


Literaturverzeichnis<br />

[1] Kindlmann G., Westin C.-F.: Diffusion tensor visualization with glyph packing. In<br />

Proceedings of IEEE Visualization’ 06 (Los Alamitos, CA, USA, October 2006),<br />

Gröller E., Pang A., Silva C. T., Stasko J., van Wijk J., (Eds.), IEEE Computer Society<br />

Press, pp. 1329–1335.<br />

[2] Blaas J., Botha C. P., Vos F. M., Post F. H.: Fast and reproducible fiber bundle<br />

selection in DTI visualization. In Proceedings of IEEE Visualization 2005 (Los<br />

Alamitos, CA, USA, 2005), Silva C. T., Gröller E., Rushmeier H., (Eds.), IEEE<br />

Computer Society, IEEE Computer Society Press, pp. 59–64.<br />

[3] Akers D., Sherbondy A., Mackenzie R., Dougherty R., Wandell B.: Exploration of<br />

the brain’s white matter pathways with dynamic queries. In Proceedings of IEEE<br />

Visualization’04 (Los Alamitos, CA, USA, 2004), Rushmeier H., Turk G., van Wijk J.<br />

J., (Eds.), IEEE Computer Society Press,pp. 377–384.<br />

[4] Wedeen V., Wang R., Schmahmann J., Benner T., Tseng W., Dai G., Pandya D.,<br />

Hagmann P., d’Arcuil H., de Crespigny A.: Diffusion spectrum magnetic resonance<br />

<strong>im</strong>aging (dsi) tractography of crossing fibers. NeuroImage, 4 (Jul 2008), 1267–1277.<br />

[5] Moberts B., Vilanova A., van Wijk J. J.: Evaluation of fiber clustering methods for<br />

diffusion tensor <strong>im</strong>aging. In Proceedings of IEEE Visualization 2005 (Los Alamitos,<br />

CA, USA, 2005), Silva C. T., Gröller E., Rushmeier H., (Eds.), IEEE Computer<br />

Society, IEEE Computer Society Press, pp. 65–72.<br />

[6] Enders F., Sauber N., Merhof D., Hastreiter P., N<strong>im</strong>sky C., Stamminger M.:<br />

Visualization of white matter tracts with wrapped streamlines. In Proceedings of IEEE<br />

Visualization 2005 (Los Alamitos, CA, USA, 2005), Silva C. T., Gröller E., Rushmeier<br />

H., (Eds.), IEEE Computer Society, IEEE Computer Society Press, pp. 51–58.<br />

[7] Zhukov L., Barr A. H.: Oriented tensor reconstruction: Tracing neural pathways<br />

from diffusion tensor MRI. In Proceedings of IEEE Visualization ’02 (Los Alamitos,<br />

CA, 2002), IEEE Computer Society, pp. 387–394.<br />

[8] Merhof D., Enders M. S. F., N<strong>im</strong>sky C., Hastreiter P., Greiner G.: Hybrid<br />

visualization for white matter tracts using triangle strips and point sprites. IEEE<br />

Transactions on Visualization and Computer Graphics 12 (Oct. 2006), 1181–1188.<br />

76


[9] Zhang S., Demiralp ´C Agatay., Laidlaw D. H.: Visualizing diffusion tensor MR<br />

<strong>im</strong>ages using streamtubes and streamsurfaces. IEEE Transactions on Visualization and<br />

Computer Graphics TVCG 9 (October-December 2003), 454–462.<br />

[10] Mallo O., Peickert R., Sigg C., Sadlo F.: Illuminated lines revisited. In Proceedings<br />

of IEEE Visualization 2005 (Los Alamitos, CA, USA, 2005), Silva C. T., Gröller E.,<br />

Rushmeier H., (Eds.), IEEE Computer Society, IEEE Computer Society Press, pp. 19–<br />

26.<br />

[11] Kondratieva P., Krüger J., Westermann R.: The application of GPU particle<br />

tracing to diffusion tensor field visualization. In Proceedings of IEEE Visualization<br />

2005 (Los Alamitos, CA, USA, 2005), Silva C. T., Gröller E., Rushmeier H., (Eds.),<br />

IEEE Computer Society, IEEE Computer Society Press, pp. 73–78.<br />

[12] Park H.-J., Kubicki M., Westin C.-F., Talos I.-F., Brun A., Peiper S., Kikinis R.,<br />

Jolesz F., Mccarley R., Shenton M.: Method for combining information from white<br />

matter tracking and gray matter parcellation. American Journal of Neuroradiology<br />

(2004), 1318–1324.<br />

[13] Schultz T., Sauber N., Anwander A., Theisel H., Seidel H.-P.: Virtual klingler<br />

dissection: Putting fibers into context. Computer Graphics Forum 27, 3 (2008), 1063–<br />

1070.<br />

[14] Ludwig E., Klingler J.: Atlas cerebri humani: the inner structure of the brain<br />

demonstrated on the basis of macroscopical preparations. Boston : Little, Brown,<br />

c1956., 1956.<br />

[15] Laramee R. S., Jobard B., H<strong>aus</strong>er H.: Image space based visualization of unsteady<br />

flow on surfaces. Proceedings of IEEE Visualization 2003 (2003).<br />

[16] Hotz I., Feng L., Hagen H., Hamann B., Joy K. I.: Tensor field visualization using<br />

a metric interpretation. In Visualization and Processing of Tensor Fields (2006),<br />

Weickert J., Hagen H., (Eds.), Springer–Verlag Berlin Heidelberg, pp. 269–281.<br />

[17] Stejskal E.O., Tanner, J.E.: Spin Diffusion Measurements - Spin echoes in the<br />

presence of a t<strong>im</strong>e-dependent field gradient. In: Journal of Chemical Physics. Melville<br />

42.1965, 288−292.<br />

[18] C. Westin, S. Maier, H. Mamata, A. Nabavi, F. Jolesz, and R. Kikinis. Processing<br />

and visualization for diffusion tensor mri. Medical Image Analysis, 6(2):93.108, 2002.<br />

[19] Mori S. and van Zijl P.C.: Fiber tracking: principles and strategies - a technical<br />

review. NMR Biomed, 15:468.480, 2002.<br />

77


[20] Mori S., Crain B.J., Chacko V.P., and van Zijl P.C.: Three d<strong>im</strong>ensional tracking of<br />

axonal projections in the brain by magnetic resonance <strong>im</strong>aging. Ann Neurol,<br />

45(2):265.269, 1999.<br />

[21] Mori S., Wakana S., Nagae-Poetscher L.M., van Zijl P.C.: MRI Atlas of the Human<br />

white Matter, Balt<strong>im</strong>ore, MD, USA, 2005.<br />

[22] Anwander, A.; Tittgemeyer, M.; <strong>von</strong> Cramon, D.Y. ; Friederici, A.D.; Knösche,<br />

T.R.: Connectivity-Based Parcellation of Broca's Area,Cerebral Cortex, Volume 17,<br />

Number 4, (2007), pp. 816-825.<br />

[23] Kreher, B.W.: Detektion <strong>von</strong> Hirnnervenfasern auf der Basis <strong>von</strong><br />

diffusionsgewichteten Magnetresonanzdaten, Dissertationsschrift, Freiburg, 2007.<br />

[24] Lorensen W. E., Cline H. E., „Marching Cubes: A High Resolution 3D Surface<br />

Construction Algorithm“, ACM Computer Graphics Vol. 21 No. 4 (SIGGRAPH 1987<br />

Proceedings).<br />

[25] Cabral B., Leedom L. C.: Imaging Vector Fields Using Line Integral Convolution.<br />

In: Proceedings of ACM SIGGRAPH '93, Aug 2-6, Anahe<strong>im</strong>, California, pp. 263-270,<br />

1993.<br />

[26] Loop C.: Smooth Subdivision Surfaces Based on Triangles. Master’s thesis,<br />

University of Utah, Salt Lake City, UT, USA, 1987.<br />

[27] D. Schreiner. OpenGL Reference Manual: The Official Reference Document to<br />

OpenGL, Version 1.2. Addison-Wesley Longman Publishing Co., Inc., Boston, MA,<br />

USA, 1999.<br />

[28] Sherbondy A., Akers D., Mackenzie R., Dougherty R., Wandell B.: Exploring<br />

Connectivity of the Brain’s White Matter with Dynamic Queries, IEEE Transactions on<br />

Visualization and Computer Graphics (2005).<br />

[29] Toussaint N., Souplet J.-C., Fillard P.: MedINRIA: DT-MRI processing and<br />

visualization software. Proceedings of MICCAI’07, Workshop on Interaction in medical<br />

<strong>im</strong>age analysis and visualization (2007).<br />

[30] nVidia Corporation: nVidia Whitepaper Using Vertex Buffer Objects (VBOs), Santa<br />

Clara, California, 2003.<br />

[31] Hlawitschka M., Anwander A., Schurade R.: FiberNavigator: Dissect the<br />

embedding Anatomy, in Review for EuroVis 2009, Berlin.<br />

[32] Anwander A, Schurade R., Hlawitschka M.: White Matter Imaging with Virtual<br />

Klingler Dissection, submitted to Human Brain Mapping 2009, San Francisco (CA),<br />

2009.<br />

78


Abbildungsverzeichnis<br />

1.1 Abbildung <strong>aus</strong> Atlas Cerebri Humani ............................................................................... 6<br />

2.1 Karten der Diffusionskonstanten .................................................................................. 11<br />

2.2 Parameter zur Beschreibung des Diffusionsellipsoiden ................................................. 12<br />

2.3 Karte der fraktionellen Anisotropie .............................................................................. 13<br />

2.4 Farbige Darstellung der größten Eigenvektoren ............................................................ 14<br />

2.5 T1-Gr<strong>aus</strong>tufenbild überlagert <strong>von</strong> Wahrscheinlichkeitskarte ........................................ 17<br />

3.1 Dreid<strong>im</strong>ensionale Darstellung eines kd-Baumes ........................................................... 19<br />

3.2 Veranschaulichung eines Würfels zwischen zwei Schichten ........................................... 20<br />

3.3 Nummerierung der Ecken und Kanten des Würfels ....................................................... 21<br />

3.4 Darstellung der triangulierten Würfel ........................................................................... 22<br />

3.5 Strömungsvisualisierung um bluntfin ............................................................................ 26<br />

3.6 LIC auf Iso-Oberfläche einer Wahrscheinlichkeitskarte .................................................. 27<br />

3.7 Aufteilung der Dreiecke in vier neue Dreiecke .............................................................. 28<br />

3.8 Regel für innere Punkte ................................................................................................ 28<br />

3.9 Regel für innere gerade reguläre Punkte ...................................................................... 29<br />

3.10 Regel für innere gerade irreguläre Punkte ................................................................... 29<br />

3.11 Regel für ungerade Randpunkte ................................................................................. 30<br />

3.12 Regel für gerade Randpunkte ..................................................................................... 30<br />

3.13 Exakte Berechnung <strong>von</strong> Randpunkten ......................................................................... 31<br />

3.14 Exakte Berechnung <strong>von</strong> Randpunkten ......................................................................... 31<br />

4.1 Darstellung verschiedene Datensätze .......................................................................... 33<br />

4.2 Eigenvektordatensatz farbkodiert und FA-gewichtet ..................................................... 34<br />

4.3 Wahrscheinlichkeitskarte interpoliert und nicht interpoliert ......................................... 35<br />

79


4.4 Faserselektion mit einer Auswahlbox ........................................................................... 37<br />

4.5 Faser<strong>aus</strong>wahl mit Master- und UND-Box....................................................................... 38<br />

4.6 Faserselektion mit mehreren Boxen ............................................................................. 38<br />

4.7 Kombination mehrerer Auswahlboxen zur Auswahl unterschiedlicher Faserbündel ....... 39<br />

4.8 Die besuchten Knoten des kd-Baum für die Auswahl des cingulum ............................... 40<br />

4.9 Iso-Oberfläche auf Wahrscheinlichkeitskarte ................................................................ 41<br />

4.10 Faserselektion durch fMRI Daten ............................................................................... 42<br />

4.11 globale Farbgebung .................................................................................................... 43<br />

4.12 lokale Farbgebung ...................................................................................................... 43<br />

4.13 manuelle Färbung ...................................................................................................... 43<br />

4.14 Färbung mit FA ........................................................................................................... 43<br />

4.15 unbeleuchtete Fasern ................................................................................................. 44<br />

4.16 beleuchtete Fasern ..................................................................................................... 44<br />

4.17 kompletter Faser-Datensatz als Röhren gerendert....................................................... 45<br />

4.18 Konstruktion des Quadstrips ...................................................................................... 46<br />

4.19 Iso-Oberfläche auf Wahrscheinlichkeitskarte mit Eigenvektorrichtung gefärbt ............ 48<br />

4.20 Artefakte nach Erstellung der Iso-Oberfläche ............................................................. 49<br />

4.21 Iso-Oberfläche auf mit Medianfilter geglättetem Datensatz ........................................ 50<br />

4.22 Artefaktentfernung nach Erstellung der Oberfläche .................................................... 51<br />

4.23 Clipping <strong>von</strong> Iso-Oberfläche an Schnittfläche .............................................................. 53<br />

5.1 Endergebnis der virtuellen Klingler-Disektion ................................................................ 54<br />

5.2 Faser<strong>aus</strong>wahl ............................................................................................................... 55<br />

5.3 Positionierung der Navigationsebene ........................................................................... 56<br />

5.4 Erzeugte Schnittfläche .................................................................................................. 56<br />

5.5 Editiermodus für Schnittfläche ..................................................................................... 56<br />

5.6 Verformte Schnittfläche, texturiert mit T1 und LIC ....................................................... 57<br />

5.7 Vergleich des Verlaufs des Fasciculus Uncinatus in 6 Versuchspersonen ........................ 58<br />

5.8 <strong>Visualisierung</strong> der Unterkomponenten des SLF ............................................................. 59<br />

5.9 Farbkodierte FA-Werte entlang der Fasern des internen Kapselsystems ........................ 60<br />

5.10 Faserbündel <strong>aus</strong> 7 Tesla DTI Bildern ............................................................................ 60<br />

5.11 Faser<strong>aus</strong>wahl anhand <strong>von</strong> funktionell aktivierten Regionen ........................................ 61<br />

80


5.12 Akustisch st<strong>im</strong>ulierte FMRI-Aktivierung sprachrelevanter Hirnareale ........................... 62<br />

5.13 Traktogramme <strong>von</strong> drei Startregionen in inferioren Parietallappen ............................. 62<br />

5.14 Virtuelle und post-mortem Dissektion der sub-insularen weißen Substanz .................. 63<br />

5.15 Klingler Dissektion und virtueller Schnitt des sprachrelevanten Fasersystems .............. 64<br />

B.1 Ansicht der Benutzeroberfläche ................................................................................... 71<br />

B.2 Listenansicht der Auswahlboxen ................................................................................. 72<br />

B.3 List-Widget für Datensätze ........................................................................................... 73<br />

B.4 Toolbar ........................................................................................................................ 74<br />

81


Abkürzungsverzeichnis<br />

AF - Fasciculus Arcuatus<br />

DTI - Diffusion Tensor Imaging<br />

FA - Fraktionelle Anisotropie<br />

FACT - Fiber Assignment by Continuous Tracking<br />

GUI - Graphical User Interface<br />

fMRT - funktionelle Magnet- Resonanz-Tomographie<br />

IFO - Fasciculus occipitofrontalis inferior<br />

LIC - Line Integral Convolution<br />

MRT - Magnet-Resonanz-Tomographie<br />

ROI - Region of Interest<br />

SLF - Fasciculus Longitudinales Superior<br />

UNC - Fasciculus Uncinatus<br />

VBO - Vertex Buffer Objects<br />

82


Danksagung<br />

An dieser Stelle möchte ich mich bei all jenen bedanken, die mich während und bei der<br />

Arbeit an dieser Diplomarbeit unterstützt haben. Insbesondere gilt mein Dank:<br />

Dr. Alfred Anwander für die sehr unkomplizierte Art und Weise der Betreuung meiner<br />

Arbeit sowie die endlosen Stunden der Diskussion und Erörterung.<br />

Dr. Mario Hlawitschka für Design- und Programmiertipps und Aufmunterungen der<br />

Art: „das ist doch in 2-3 Stunden <strong>im</strong>plementiert“. Bei Benutzung der nächstgrößeren<br />

Zeiteinheit st<strong>im</strong>mte dies sogar meist.<br />

Tobias Göbel für das unermüdliche Betatesting <strong>im</strong> Rahmen seiner Doktorarbeit. Viele<br />

seiner Anregungen zur Funktionalität und Benutzerinterface sind in das Programm<br />

eingeflossen.<br />

Prof. Gerik Scheuerman und Dr. Alexander Wiebel stellvertretend für das gesamte<br />

FAnToM-Team für die Erlaubnis Code-Fragmente <strong>aus</strong> FAnToM benutzen zu dürfen.<br />

Christian Heine für den Tipp zu nth_element. Dieser erst machte den kd-Baum zu dem<br />

eleganten und schnellen Konstrukt, der er jetzt ist.<br />

83


Erklärung<br />

Ich versichere, dass ich die vorliegende Arbeit selbständig und nur unter Verwendung<br />

der angegebenen Quellen und Hilfsmittel angefertigt habe, insbesondere sind wörtliche<br />

oder sinngemäße Zitate als solche gekennzeichnet. Mir ist bekannt, dass<br />

Zuwiderhandlung auch nachträglich zur Aberkennung des Abschlusses führen kann.<br />

Leipzig, den 13. Januar 2008<br />

84<br />

(Ralph Schurade)

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!