Ähnlichkeit
-
Hey, das sind Volumendaten von MRT/CT scans, gute frage was für rauschen das ist. Im moment nehm ich zB. den bunny von http://graphics.stanford.edu/data/voldata/voldata.html#bunny. Ein slice davon sieht z.B. so aus (ein bischen verändert, damit man das rauschen sieht)http://www.urbsch.at/files/182.png. der großteil des schwarzen ist halt eigentlich konstant (ausser die teile unten), enthält aber eine art rauschen.
-
Was willst Du mit den Volumendaten genau machen?
-
Anzeigen *g*. Ich bastel gerade an einem opencl renderer und wollte leere sowie konstante bereiche halt nicht komplett sampeln.
-
huhu²³ schrieb:
Anzeigen *g*. Ich bastel gerade an einem opencl renderer und wollte leere sowie konstante bereiche halt nicht komplett sampeln.
Cool. Mit Volumenvisualisierung habe ich mich auch mal beschäftigt. Warum musst Du dafür Bereiche mit konstantem Grauwert finden? Definiere doch einfach einen Schwellwert und ignoriere alles darunter. Und dann kannst Du vielleicht noch einzelne Voxel, die darüber liegen, rausfiltern. Aber generell solltest Du Dir überlegen, wie die Volumen aussehen, die Du visualisieren willst. Der Stanford-Bunny ist etwas sehr spezielles. Wenn ich die Bilder davon richtig interpretiere, dann hast Du da genau 2 verschiedene Materialien. Vakuum und irgendetwas anderes. Im allgemeinen wird das nicht so aussehen. Wenn Du zum Beispiel eine MRT-Aufnahme von einem Hirn oder so hast, dann sehen die Daten wesentlich komplizierter aus. Da hast Du es dann im Allgemeinen nicht mehr mit konstanten Bereichen zu tun.
Wie genau visualisierst Du das? Mir fallen mit OpenGL 2 Methoden ein. Zum einen könntest Du die Volumendaten mittels des Marching Cubes Algorithmus vorverarbeiten, um eine Oberfläche zu rekonstruieren, zum anderen könntest Du jede Schicht auf eine transparente Fläche projizieren.
Wenn Du echt coole Visualisierungen von solchen Daten machen möchtest, dann solltest Du aber Vorverarbeitungsschritte einbauen und eine Segmentierung erstellen. Mit sowas kann man schon etwas anfangen. Dann könntest Du ein Ganzkörper-MRT hernehmen und unterschiedliche Organe unterschiedlich einfärben. Das habe ich noch nicht gemacht.
Aber ich habe ein bisschen mit Direct Volume Rendering rumgespielt. Das ermöglicht teilweise auch schon ganz coole Darstellungen. Zum Beispiel habe ich mal das Bild da gemacht:
http://img203.imageshack.us/img203/6626/jaradapstent2.png
Halt mich mal auf dem Laufenden, was Du da so machst. Vielleicht lecke ich dann auch wieder Blut und mache mit dem Zeug weiter.
Zu Deinem Problem: Ich weiß nicht, was man da machen könnte, da mir immer noch nicht genau klar ist, wie das Problem, das Du lösen möchtest, eigentlich aussieht. Vielleicht verfolgst Du einen Ansatz der Darstellung, der mir nicht bekannt ist. Du könntest das Volumen natürlich glätten und danach gucken, an welchen Stellen es nur einen sehr kleinen Gradienten gibt.
-
Hey, das sieht ja auch cool aus. Viel sieht man bei mir leider noch nicht, aber das ganze läuft auch über raycasting. In diesem fall hab ich einfach nur was gesucht, um volumendaten (eigentlich voxel) zu haben welche halbwegs nach einer struktur aussehen und nicht raumfüllend sind, damit ich eben wie gesagt teile des raumes als leer bzw. konstant einstufen kann. Eigentlich werd ich eher syntetische daten mit relativ viel freien/verdeckten flächen haben, wusste nur nicht wo ich sowas auf die schnelle herbekomme, daher der "bunny" :). Ich meld mich wenn man was zum angucken hat *g*
-
Wie machst Du Raycasting mit OpenGL? Hmmm... ich sehe gerade, dass Du OpenCL geschrieben hast. Was ist das?
EDIT: Hast Du bei den synthetischen Daten ähnliches Rauschen wie beim Bunny? Beim Bunny sieht das irgendwie eher nach Artefakten aus, die durch die Bildaufnahmetechnik entstehen. Also nach etwas ganz Speziellem, das bei synthetischen Bildern nicht vorhanden sein wird.
-
OpenCL stellt eine plattform bereit mit der man auf verschiedenen geräten rechnen kann, unter anderem auch auf der GPU :). Man kann sich das ein bischen als allgemeinen pixelshader vorstellen, nur hat man halt sachen wie arrays statt texturen und so was das ganze wesentlich kompfortabler macht. Und die programme laufen (mit passendem treiber) auch auf der CPU, so das man nicht zwingend eine OpenCL fähige Grafikkarte braucht (dafür aber halt generell langsammer). Ist schon ganz spannend.
Ja später gibts das rauschen nicht das stimmt. Aber ich wollte gerade irgendwo volumendaten herbekommen die mehr als nur ne kugel und ein rechteck sind, aber auch nicht raumfüllend. Wenn du da was kennst nur zu *g*.
-
ich nix wissen schrieb:
Ja später gibts das rauschen nicht das stimmt. Aber ich wollte gerade irgendwo volumendaten herbekommen die mehr als nur ne kugel und ein rechteck sind, aber auch nicht raumfüllend. Wenn du da was kennst nur zu *g*.
Du könntest mal gucken, ob da etwas dabei ist: http://www.volvis.org/ Bei den "alten" Datensätzen könnten einige sein, die in etwa das sind, was Du suchst. Aber Du müsstest natürlich einen entsprechenden Ladealgorithmus für das Format da schreiben.
EDIT:
1. Was für synthetische Daten hast Du denn?
2. Ich würde Dir empfehlen, mit einfachen synthetischen Daten zu testen. Warum sollte man sich mit Problemen rumschlagen, die man in Wirklichkeit gar nicht hat?
-
Hey, wie versprochen mal zwei bildchen, ist aber alles noch gaaanz doll work in progress *g*
Einmal das Komplette volumen (512x512x512) in brute force durchgesampelt. Hierbei wird auch schon der baum durchlaufen (welcher aber bisher das node level nur nach entfernung zur kamera auswählt).
http://www.urbsch.at/files/bunny_2.pngHier sieht man den tree ein bischen von der seite, das ist so die nächste große baustelle, das der tree je nach vorliegenden daten mipmap bricks berechnet und leere bereiche ausklammert.
http://www.urbsch.at/files/bunny.png
-
Gregor schrieb:
Aber ich habe ein bisschen mit Direct Volume Rendering rumgespielt. Das ermöglicht teilweise auch schon ganz coole Darstellungen. Zum Beispiel habe ich mal das Bild da gemacht:
Sehr geil.
Sind die Daten dieses Scans öffentlich zugänglich? Würde mich gerne mal damit beschäftigen.
-
mal wieder kreativ schrieb:
Einmal das Komplette volumen (512x512x512) in brute force durchgesampelt. Hierbei wird auch schon der baum durchlaufen (welcher aber bisher das node level nur nach entfernung zur kamera auswählt).
http://www.urbsch.at/files/bunny_2.pngCool. Und enorm hohe Anzahl an FPS. Was für eine Projektion ist das?
Raffel schrieb:
Gregor schrieb:
Aber ich habe ein bisschen mit Direct Volume Rendering rumgespielt. Das ermöglicht teilweise auch schon ganz coole Darstellungen. Zum Beispiel habe ich mal das Bild da gemacht:
Sehr geil.
Sind die Daten dieses Scans öffentlich zugänglich? Würde mich gerne mal damit beschäftigen.Ich glaube, das war dort...
http://www.gris.uni-tuebingen.de/edu/areas/scivis/volren/datasets/new.html
...der Datensatz "Stented Abdominal Aorta".