Digitális képek szegmentálása
A programot Matlab 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.
- Használj konzisztens tabulálást
- 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.inf.u-szeged.hu/~kato/teaching/segmentation/
Határidő: |
2017 november 6, 10:00 |
Formátum: |
Egyetlen ZIP fájl amely a MATLAB forrásfájlt tartalmazza. |
Fájlnév: |
<
mathend000#Neptun azonosító>
mathend000#.zip . |
Implementáljuk az előadáson megismert Niblack küszöbölő eljárást, valamint az azt követő átlagos gradiensen alapuló utófeldolgozást. A
program GUI az alábbi elemeket tartalmazza:
- Input kép egy scrollozható ablakban
- Az egyes pixelekben használt Niblack küszöbértékeket jelenítsük meg
képként egy scrollozható ablakban.
- Szegmentált kép összefüggő regiói (connected components) régiónként különböző intenzitásértékkel egy másik scrollozható ablakban
- Az input gradiens magnitudója egy képként (0-255
közötti szürkeértékekre normalizálva) jelenjen meg külön scrollozható
ablakban.
- A végső szegmentálás eredménye egy scrollozható ablakban (objektum fehér
színnel, háttér pedig fekete színnel jelenjen meg)
- Az input kép valamint az eljárásokhoz szükséges paraméterértékek
beolvasását és a szegmentált kép eltárolását is biztositani kell.
Segítség: A Niblack algoritmus eredménye egy bináris kép,
amelyen a 8-összefüggő régiókat a
http://homepages.inf.ed.ac.uk/rbf/HIPR2/label.htm helyen található egyszerű
algoritmussal címkézhetjük meg. A gradiens nagyságának kiszámítása
során használjuk az előadáson megismert Sobel operátort. Az
utófeldolgozás ezek után egyszerűen elvégezhető: a különböző
intenzitással megjelölt régiók határán lévő pixelek gradiensértékét
átlagoljuk, és ha azok egy adott küszöbnél nagyobbak, akkor az adott
régió bekerül a végső szegmentálásba fehér színnel, ha pedig kisebb,
akkor a pixelek törlődnek, vagyis a kimeneti képen fekete színnel
jelennek meg.
Last modified: Thu Oct 5 19:28:40 CEST 2017