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 Dok­tor­ar­beit von Roman Vla­sov wurde das Pro­gramm um eine fle­xi­be­le hap­ti­sche Schnitt­stel­le er­wei­tert.

Download

Die sechste Be­ta-Ver­si­on von YaDiV ist in­zwi­schen als Clo­sed Sour­ce er­hält­lich!
YaDiV 1.0 beta 6  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 6. Beta Ver­si­on sind u.a.: 

  • Four-View GUI
  • Erweiterte Deforable Model Segmentierung
  • Beschleunigung vieler Komponenten

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 (8.x oder neuer) muss 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.

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.6.0) 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