Energiaminimalizációs módszerek a képszegmentálásban

1. PROGRAM

Követelmények

A programot Linux alatt Java nyelven az alábbi követelményeknek megfelelően kell elkészíteni és beadni:
  1. Olvasd el és nagyon pontosan kövesd a program specifikációt és utasításokat.
  2. A specifikációban előírt függvényeveket, változóneveket, argumentumokat ne változtasd meg. Ha például egy strcpy(a,b) függvényt kell írnod, akkor sem strcpy sem a, b neve nem változtatható.
  3. Minden egyéb függvényevet, változónevet, stb ...szabadon választhatsz, de a neveknek tükrözniük kell azok funkcióját. Olyan függvény nevek, mint func vagy f nem elfogadhatóak. Azonban i például minden további nélkül használható, mint egy tömb indexváltozó.
  4. Minden forrásfájl elején egy elegendően részletes leírásnak kell lennie, amelynek tartalmaznia kell a fájl nevét, a szerző nevét, ETR azonosítóját, gyakorlati csoport számát, létrehozás dátumát, amit egy részletes kódleírás követ.
  5. A programkódot el kell látni megfelelő kommentekkel. Az alábbi kommentek elhagyása pontvesztést okozhat:
    1. Minden függvénydefiníció előtt lennie kell egy kommentnek, amelyben le kell írni a lehetséges visszaadott értékeket és azok jelentését, minden argumentumot (mire használod őket, mik az esetleges megszorítások, feltételek) és természetesen azt is le kell írni, hogy mit csinál a függvény.
    2. Ciklusok (kivéve a triviálisakat, mint például egy tömb elemeinek másolása/feltöltése).
    3. if-else, switch utasításokat minden ágban kommentel kell ellátni.
    4. Makro és konstans definiciók (#define), kivéve ha a nevük már elegendő információval szolgál.
    5. Globális változók, tipus definíciók (typedef), struktúra definíciók, kivéve ha a nevük már elegendő információval szolgál.
  6. Használj konzisztens tabulálást (emacs/xemacs-ban ez automatikusan történik).
  7. Ha az utasításokban az szerepel, hogy futtatható változatot vagy futási eredményt is be kell adni, akkor ezek hiányában a program nem értékelhető!
  8. A programot a megadott határidő előtt kell beadni. Határidő után program NEM adható be!
  9. A programot a megadott formátumban és fájlnevekkel kell beadni. Hibás formátum / fájlnév esetén a program nem értékelhető! A beadott programokon semmilyen konverziót nem hajtunk végre!
  10. A program beadásához szükséges technikai információ megtalálható a kurzus weboldalán:
    http://www.cab.u-szeged.hu/~kato/emm/
    

Feladatok

Határidő: 2011 december 13., 23:59
Formátum: Egyetlen zip fájl amely a Java forrásfájlt és
  a Linux alatt futtatható leforditott programot tartalmazza.
Fájlnév: < mathend000#kabinetes azonosító> mathend000#.tar (például: h836427.zip).





1. FELADAT

Implementáljunk egy weak membrane model-en alapuló kép-rekonstrukciós algoritmust. Az energiaminimalizációt az előadáson megismert Graduated Non-Convexity (GNC) algoritmussal oldjuk meg.

Az algoritmus szürkeárnyalatos képeken dolgozik, de opcionálisan (és minimális plusz munkával) színes változatot is készíthetünk. Ehhez azonban az emberi érzékelésnek megfelelő színteret használjunk (pl. a CIE-L*u*v* mathend000#).

A GNC algoritmus implementálásához fontos megjegyzés, hogy az előadásfóliákon a weak string közelítő energiafüggvénye szerepel. Ettől a weak membrane közelítő energiafüggvénye annyiban tér el, hogy a második tag kétszer szerepel: egyszer a vertikális és egyszer a horizontális pixel-párokra felírva!

A forráskódon kívül egy Linux alatt futtatható programot is be kell adni. Ennek neve legyen gnc.



Last modified: Fri Oct 14 18:52:01 CEST 2011