YaDiV

YaDiV ("Yet Ano­ther DIcom View­er") ist ein Pro­gramm zur in­ter­ak­ti­ven Vi­sua­li­sie­rung von 3D Vo­lu­men­da­ten aus dem Be­reich der Me­di­zin. Das Pro­gramm kann Daten im DICOM For­mat (ge­nau­ge­nom­men DICOM File Sets) ein­le­sen und ent­hält u.a. Mo­du­le zur 

  • 2D Vi­sua­li­sie­rung,
  • 3D Vo­lu­men-Vi­sua­li­sie­rung (2- und 3D-tex­t­ur­ba­siert),
  • 3D Seg­men­tie­rung,
  • 3D Seg­ment-Vi­sua­li­sie­rung,
  • Un­ter­stüt­zung für ste­reo­gra­phi­sche Vi­sua­li­sie­rung und hap­ti­sche Ein­ga­be­ge­rä­te.

Das Pro­gramm wird seit 2005 von Dr. Karl-In­go Frie­se zu­sam­men mit Stu­den­ten des Wel­fen­lab ent­wi­ckelt und dient der­zeit als Platt­form für un­se­re ei­ge­ne For­schung im Be­reich der me­di­zi­ni­schen 3D-Da­ten­ver­ar­bei­tung. Durch die Doktorarbeit von Roman Vlasov wurde das Programm um eine flexibele haptische Schnittstelle erweitert.

Download

Die fünf­te Be­ta-Ver­si­on von YaDiV ist in­zwi­schen als Clo­sed Sour­ce er­hält­lich!
YaDiV 1.0 beta 5  ist na­he­zu iden­tisch mit der ak­tu­el­len Ent­wick­ler Ver­si­on, le­dig­lich die hap­ti­sche Schnitt­stel­le wurde ent­fernt.

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

  • Un­ter­stüt­zung wei­te­rer Vo­lu­men­for­ma­te
  • De­for­ma­ble Model Seg­men­tie­rung
  • Iden­ti­fi­ka­ti­on + Ana­ly­se von Zu­sam­men­hangs­kom­po­nen­ten und vie­les mehr.

Diese Be­ta-Ver­si­on darf nur zum Tes­ten des Pro­gram­mes her­un­ter­ge­la­den und nicht wei­ter­ge­ge­ben wer­den. Eine nicht-kom­mer­zi­el­le Nut­zung im Rah­men von For­schung und Lehre ist er­laubt, nä­he­re De­tails ste­hen in der mit­ge­lie­fer­ten Pro­gramm­hil­fe. Das Pro­gramm muss nach dem Her­un­ter­la­den nicht in­stal­liert wer­den. Ein­fach die zip Datei aus­pa­cken und Laun­chYa­DiV.​jar aus­füh­ren. Eine ak­tu­el­le Java Ver­si­on (6.x oder neuer) sowie Ja­va3D (1.5.2) soll­ten auf dem Sys­tem be­reits in­stal­liert sein. Frei er­hält­li­che DIOCM Da­ten­sät­ze kön­nen bspw. hier her­un­ter­ge­la­den wer­den. Je nach Auf­lö­sung des Da­ten­sat­zes wer­den 2-4 GB Haupt­spei­cher be­nö­tigt.

Das Pro­gramm ist noch nicht fer­tig, daher kann es vor­kom­men das DICOM Da­ten­sät­ze nicht rich­tig an­ge­zeigt wer­den oder dass das Pro­gramm ab­stürzt.  Be­nut­zer-Rück­mel­dun­gen (Feh­ler­be­rich­te, Fea­ture-Wün­sche) sind daher je­der­zeit wil­kom­men.

Technisches

YaDiV wird in der Pro­gram­mier­spra­che Java ent­wi­ckelt und läuft pro­blem­los unter Win­dows, Linux (fe­do­ra 8) und MacOS X. Das Pro­gramm wurde unter 32 und 64 bit ge­tes­tet, letz­te­res ist für sehr große Vo­lu­men­da­ten ab­so­lut er­for­der­lich. Da YaDiV spe­zi­ell für schnel­le, in­ter­ak­ti­ve Vi­sua­li­sie­rung und Seg­men­tie­rung an­ge­legt wurde, ist es stark thre­ad-ba­siert und pro­fi­tiert di­rekt von Mehr­kern­pro­zes­so­ren bzw. Mul­ti­pro­zes­sor­um­ge­bun­gen. Aber auch auf einem nor­ma­len Lap­top las­sen sich mitt­le­re Vo­xel­da­ten­da­ten­sät­ze (~ 512³) schnell an­se­hen und be­ar­bei­ten.

Für die 3D-Vi­sua­li­sie­rung wird Ja­va3D (Ver­si­on 1.5.2) ein­ge­setzt. Alle zeit­kri­ti­schen Ver­fah­ren wie eine Le­vel-Set Seg­men­tie­rung oder das Ein­le­sen gro­ßer Daten wur­den als ei­ge­ner Thre­ad im­ple­men­tiert, so dass die Pro­gram­mo­ber­flä­che nie­mals blo­ckiert wird. So wird z.B. nach einer Än­de­rung eines Seg­men­tes im Hin­ter­grund ein au­to­ma­tisch ver­fei­nern­der Al­go­rith­mus für die 3D Dar­stel­lung ge­star­tet, damit Än­de­run­gen so­fort sicht­bar wer­den. Wenn sich das Seg­ment er­neut än­dert bevor die höchs­te Ver­fei­ne­rungs­stu­fe er­reicht wurde, star­tet der Ver­fei­ne­rungs­al­go­rith­mus au­to­ma­tisch neu.

Im Zuge der Ent­wick­lung wur­den meh­re­re vom Haupt­pa­ket un­ab­hän­gi­ge APIs ent­wor­fen, z.B. eine Set­tings-API, die es er­laubt zur Lauf­zeit spe­zi­el­le Klas­sen­at­tri­bu­te zu de­fi­nie­ren die au­to­ma­tisch mit einem GUI Ele­ment ver­knüpft wer­den. Für das Lay­out wurde eben­falls eine spe­zi­el­le API ("Grid­Ma­ker") ent­wor­fen, die die Lay­out Be­schrei­bung der SWING Ober­flä­che in einer HTML-Ta­bel­len ähn­li­chen Syn­tax er­laubt. Beide APIs, Grid­Ma­ker und die Set­tings-API wer­den in naher Zu­kunft als ei­gen­stän­di­ge Open Sour­ce Pa­ke­te ver­öf­fent­licht. 

Screenshots