Energiaminimalizációs módszerek a képszegmentálásban
A programot Linux alatt Java nyelven az alábbi
követelményeknek megfelelően kell elkészíteni és beadni:
- Olvasd el és nagyon pontosan kövesd a program
specifikációt és utasításokat.
- 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ó.
- 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ó.
- 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.
- A programkódot el kell látni megfelelő kommentekkel.
Az alábbi kommentek elhagyása pontvesztést okozhat:
- 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.
- Ciklusok (kivéve a triviálisakat, mint például egy tömb
elemeinek másolása/feltöltése).
- if-else, switch utasításokat minden ágban kommentel
kell ellátni.
- Makro és konstans definiciók (#define), kivéve ha a nevük már elegendő információval szolgál.
- 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.
- Használj konzisztens tabulálást (emacs/xemacs-ban ez automatikusan történik).
- 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ő!
- A programot a megadott határidő előtt kell beadni. Határidő
után program NEM adható be!
- 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!
- 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/
| 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). |
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