YaDiV

YaDiV ("Yet An­other DIcom Viewer") ist ein Pro­gramm zur in­ter­ak­tiven Vi­su­al­isierung von 3D Vol­u­men­daten aus dem Bere­ich der Medi­zin. Das Pro­gramm kann Daten im DICOM For­mat (genaugenom­men DICOM File Sets) ein­le­sen und enthält u.a. Mod­ule zur 

  • 2D Vi­su­al­isierung,
  • 3D Vol­u­men-Vi­su­al­isierung (2- und 3D-tex­tur­basiert),
  • 3D Seg­men­tierung,
  • 3D Seg­ment-Vi­su­al­isierung,
  • Un­terstützung für stere­o­graphis­che Vi­su­al­isierung und hap­tis­che Eingabegeräte.

Das Pro­gramm wird seit 2005 von Dr. Karl-Ingo Friese zusam­men mit Stu­den­ten des Welfen­lab en­twick­elt und dient derzeit als Plat­tform für un­sere eigene Forschung im Bere­ich der medi­zinis­chen 3D-Daten­ver­ar­beitung. Eine Open Source Veröffentlichung ist in Kürze ge­plant!

Download

Die fünfte Beta-Version von YaDiV ist inzwischen als Closed Source erhältlich!
YaDiV 1.0 beta 5  ist nahezu identisch mit der aktuellen Entwickler Version, lediglich die haptische Schnittstelle wurde entfernt.

Neu in der 5. Beta Ver­sion sind u.a.: 

  • Un­terstützung weit­erer Vol­u­men­for­mate
  • De­formable Model Seg­men­tierung
  • Iden­ti­fika­tion + Analyse von Zusam­men­hangskom­po­nen­ten und vieles mehr.

Diese Beta-Ver­sion darf nur zum Testen des Pro­grammes herun­terge­laden und nicht weit­ergegeben wer­den. Eine nicht-kom­merzielle Nutzung im Rah­men von Forschung und Lehre ist er­laubt, nähere De­tails ste­hen in der mit­geliefer­ten Pro­grammhilfe. Das Pro­gramm muss nach dem Herun­ter­laden nicht in­stal­liert wer­den. Ein­fach die zip Datei aus­packen und LaunchYaDiV.​jar ausführen. Eine ak­tuelle Java Ver­sion (6.x oder neuer) sowie Java3D (1.5.2) soll­ten auf dem Sys­tem bere­its in­stal­liert sein. Frei erhältliche DIOCM Datensätze können bspw. hier herun­terge­laden wer­den. Je nach Auflösung des Daten­satzes wer­den 2-4 GB Haupt­spe­icher benötigt.

Das Pro­gramm ist noch nicht fer­tig, daher kann es vorkom­men das DICOM Datensätze nicht richtig angezeigt wer­den oder dass das Pro­gramm abstürzt.  Be­nutzer-Rück­mel­dun­gen (Fehler­berichte, Fea­ture-Wünsche) sind daher jed­erzeit willkom­men.

Technisches

YaDiV wird in der Pro­gram­mier­sprache Java en­twick­elt und läuft prob­lem­los unter Win­dows, Linux (fe­dora 8) und MacOS X. Das Pro­gramm wurde unter 32 und 64 bit getestet, let­zteres ist für sehr große Vol­u­men­daten ab­so­lut er­forder­lich. Da YaDiV speziell für schnelle, in­ter­ak­tive Vi­su­al­isierung und Seg­men­tierung an­gelegt wurde, ist es stark thread-basiert und prof­i­tiert di­rekt von Mehrk­ern­prozes­soren bzw. Mul­ti­prozes­so­rumge­bun­gen. Aber auch auf einem nor­malen Lap­top lassen sich mit­tlere Vox­el­da­ten­datensätze (~ 512³) schnell anse­hen und bear­beiten.

Für die 3D-Vi­su­al­isierung wird Java3D (Ver­sion 1.5.2) einge­setzt. Alle zeitkri­tis­chen Ver­fahren wie eine Level-Set Seg­men­tierung oder das Ein­le­sen großer Daten wur­den als eigener Thread im­ple­men­tiert, so dass die Pro­gram­moberfläche niemals block­iert wird. So wird z.B. nach einer Änderung eines Seg­mentes im Hin­ter­grund ein au­toma­tisch ver­fein­ern­der Al­go­rith­mus für die 3D Darstel­lung ges­tartet, damit Änderun­gen so­fort sicht­bar wer­den. Wenn sich das Seg­ment erneut ändert bevor die höchste Ver­feinerungsstufe er­re­icht wurde, startet der Ver­feinerungsal­go­rith­mus au­toma­tisch neu.

Im Zuge der En­twick­lung wur­den mehrere vom Haupt­paket unabhängige APIs ent­wor­fen, z.B. eine Set­tings-API, die es er­laubt zur Laufzeit spezielle Klasse­n­at­tribute zu definieren die au­toma­tisch mit einem GUI El­e­ment verknüpft wer­den. Für das Lay­out wurde eben­falls eine spezielle API ("Grid­Maker") ent­wor­fen, die die Lay­out Beschrei­bung der SWING Oberfläche in einer HTML-Tabellen ähn­lichen Syn­tax er­laubt. Beide APIs, Grid­Maker und die Set­tings-API wer­den in naher Zukunft als eigenständige Open Source Pakete veröffentlicht. 

Screenshots