19
Medizinische Medizinische Visualisierung Visualisierung Marching Cubes, Triangle Marching Cubes, Triangle Decimation, JAVA 3D Decimation, JAVA 3D

Medizinische Visualisierung Marching Cubes, Triangle Decimation, JAVA 3D

Embed Size (px)

Citation preview

Page 1: Medizinische Visualisierung Marching Cubes, Triangle Decimation, JAVA 3D

Medizinische Medizinische VisualisierungVisualisierung

Marching Cubes, Triangle Marching Cubes, Triangle Decimation, JAVA 3DDecimation, JAVA 3D

Page 2: Medizinische Visualisierung Marching Cubes, Triangle Decimation, JAVA 3D

AufgabenstellungAufgabenstellung

Aus den Aus den Schnittbildern des Schnittbildern des Magnetresonanz-Magnetresonanz-Verfahrens soll ein Verfahrens soll ein 3D-Modell 3D-Modell generiert werden.generiert werden.

Page 3: Medizinische Visualisierung Marching Cubes, Triangle Decimation, JAVA 3D

UmsetzungUmsetzung

1)1) Erzeugen einer Erzeugen einer Oberflächentriangulation mittels Oberflächentriangulation mittels Marching CubeMarching Cube Algorithmus. Algorithmus.

2)2) Reduzierung der erzeugten Reduzierung der erzeugten Dreiecke durch ein „Dreiecke durch ein „Vertex Vertex DecimationDecimation“-Verfahren.“-Verfahren.

3)3) Anzeigen der Triangulation durch Anzeigen der Triangulation durch JAVA 3D.JAVA 3D.

Page 4: Medizinische Visualisierung Marching Cubes, Triangle Decimation, JAVA 3D

Marching CubeMarching Cube Verfahren zur Verfahren zur

Volumenvisualisierung.Volumenvisualisierung. Über einen Schwellwert Über einen Schwellwert

wird eine Isofläche wird eine Isofläche definiert.definiert.

Diese Isofläche wird durch Diese Isofläche wird durch ein Dreiecksnetz ein Dreiecksnetz approximiert.approximiert.

Jeder Bildpunkt wird als Jeder Bildpunkt wird als Basispunkt eines Würfels Basispunkt eines Würfels betrachtet. Die fehlenden betrachtet. Die fehlenden Punkte des Würfels werden Punkte des Würfels werden durch die Nachbarn des durch die Nachbarn des Basispunktes definiert.Basispunktes definiert.

Page 5: Medizinische Visualisierung Marching Cubes, Triangle Decimation, JAVA 3D

Marching CubeMarching Cube Die Bildpunkte werden iterativ durchlaufen und Die Bildpunkte werden iterativ durchlaufen und

klassifiziert. klassifiziert. Die 2^8 = 256 möglichen Klassifizierungen lassen Die 2^8 = 256 möglichen Klassifizierungen lassen

sich durch Komplementbildung, Spiegelung und sich durch Komplementbildung, Spiegelung und Rotation auf 15 Äquivalenzklassen reduzieren.Rotation auf 15 Äquivalenzklassen reduzieren.

Die Triangulierung wird nun anhand einer Tabelle Die Triangulierung wird nun anhand einer Tabelle über die jeweilige Äquivalenzklasse bestimmt.über die jeweilige Äquivalenzklasse bestimmt.

Die genaue Position der Knoten und die Die genaue Position der Knoten und die Dreiecksnormalen werden durch lineare Dreiecksnormalen werden durch lineare Interpolation berechnet.Interpolation berechnet.

Page 6: Medizinische Visualisierung Marching Cubes, Triangle Decimation, JAVA 3D

Marching CubeMarching Cube15 Äquivalenzklassen

Page 7: Medizinische Visualisierung Marching Cubes, Triangle Decimation, JAVA 3D

Reduzierung der Reduzierung der DreieckeDreiecke

Motivation:Motivation: Die Anzahl der beim Marching Cube Die Anzahl der beim Marching Cube

Algorithmus erzeugten Dreiecke ist in der Algorithmus erzeugten Dreiecke ist in der Regel sehr hoch.Regel sehr hoch.

Reduzierungsmethoden:Reduzierungsmethoden:Reduzierung der Dreiecke durch Reduzierung Reduzierung der Dreiecke durch Reduzierung

der…der… KnotenKnoten KantenKanten DreieckeDreiecke FlächenFlächen

Page 8: Medizinische Visualisierung Marching Cubes, Triangle Decimation, JAVA 3D

Reduzierung der KnotenReduzierung der Knoten Nicht jeder Knoten ist Nicht jeder Knoten ist

zum Entfernen geeignet.zum Entfernen geeignet. Kriterien für das Kriterien für das

Entfernen:Entfernen: darf kein äußerer Knoten darf kein äußerer Knoten

sein, d.h. sein, d.h. Knoten muß an mehr als Knoten muß an mehr als

zwei Dreiecke grenzenzwei Dreiecke grenzen das entstehende Loch muß das entstehende Loch muß

ein geschlossenes Polygon ein geschlossenes Polygon seinsein

Die inzidenten Knoten Die inzidenten Knoten müssen „ungefähr“ auf müssen „ungefähr“ auf einer Ebene liegen, d.h. sie einer Ebene liegen, d.h. sie müssen müssen koplanarkoplanar sein. sein.

Page 9: Medizinische Visualisierung Marching Cubes, Triangle Decimation, JAVA 3D

Koplanarität der KnotenKoplanarität der Knoten

Berechnung der Berechnung der HauptkomponenteHauptkomponenten der n der Knotenmenge.Knotenmenge.

Koplanarität gilt Koplanarität gilt gdw. eine gdw. eine Hauptkomponente Hauptkomponente sehr viel kleiner sehr viel kleiner ist, als die beiden ist, als die beiden Anderen.Anderen.

Page 10: Medizinische Visualisierung Marching Cubes, Triangle Decimation, JAVA 3D

Triangulation Triangulation (Ear Cutting)(Ear Cutting)

Durch Entfernen eines Knotens entsteht Durch Entfernen eines Knotens entsteht ein sternförmiges Polygon.ein sternförmiges Polygon.

Die Triangulierung erfolgt durch Die Triangulierung erfolgt durch sukzessives Entfernen der Ohren des sukzessives Entfernen der Ohren des Polygons.Polygons.

Page 11: Medizinische Visualisierung Marching Cubes, Triangle Decimation, JAVA 3D

JAVA 3DJAVA 3D

Java-API zur Erstellung, Darstellung Java-API zur Erstellung, Darstellung und Animation von 3D-Szenenund Animation von 3D-Szenen

bietet komplexe Datenstrukturen zur bietet komplexe Datenstrukturen zur Erstellung von animierten und Erstellung von animierten und interaktiven virtuellen Welteninteraktiven virtuellen Welten

nutzt OpenGL- bzw. Direct3D-nutzt OpenGL- bzw. Direct3D-Schnittstellen für schnelle Schnittstellen für schnelle DarstellungDarstellung

Page 12: Medizinische Visualisierung Marching Cubes, Triangle Decimation, JAVA 3D

JAVA 3D: SceneGraphJAVA 3D: SceneGraph Der SceneGraph ist die Der SceneGraph ist die

zentrale Datenstruktur zentrale Datenstruktur (Baum) für die (Baum) für die Visualisierung der Visualisierung der virtuellen Welt.virtuellen Welt.

Baumstruktur bestehend Baumstruktur bestehend aus Knoten und Kanten. aus Knoten und Kanten. - Knoten können 3D-Objekte, Knoten können 3D-Objekte,

Lichtquellen, Sounds oder Lichtquellen, Sounds oder Behaviors seinBehaviors sein

- Kanten sind entweder Kanten sind entweder Eltern-Kind oder Referenz-Eltern-Kind oder Referenz-Beziehung.Beziehung.

Page 13: Medizinische Visualisierung Marching Cubes, Triangle Decimation, JAVA 3D

Unser SceneGraphUnser SceneGraph

BG

BoundingSphere

Canvas3D

Shape3D(TriangleArray)

PickRotateBehaviorPickZoomBehaviorPickTranslateBehavior

BranchGroup

SPXB

Page 14: Medizinische Visualisierung Marching Cubes, Triangle Decimation, JAVA 3D

#Dreiecke:7280

#Iterationen:0

Page 15: Medizinische Visualisierung Marching Cubes, Triangle Decimation, JAVA 3D

#Dreiecke:2656

#Iterationen:1

Page 16: Medizinische Visualisierung Marching Cubes, Triangle Decimation, JAVA 3D

#Dreiecke:1992

#Iterationen:2

Page 17: Medizinische Visualisierung Marching Cubes, Triangle Decimation, JAVA 3D

#Iterationen:10

#Dreiecke:883

Page 18: Medizinische Visualisierung Marching Cubes, Triangle Decimation, JAVA 3D

#Dreiecke:52608

#Schichten:21

#Iterationen:0

Page 19: Medizinische Visualisierung Marching Cubes, Triangle Decimation, JAVA 3D

#Dreiecke:13168

#Iterationen:1

#Schichten:21