Program | ||
Az algoritmus megvalósítása Matlab 7.0-ban történt, a program neve: vinp (a Video INPainting kifejezésből). | ||
Telepítés | ||
A telepítéshez mindössze a forráskódot tartalmazó könyvtárat és annak alkönyvtárait kell a Matlab keresési útvonalához a Set Path paranccsal hozzáadni. | ||
Használat | ||
A vinp_gui parancs kiadására megjelenik a grafikus felhasználói felület, amellyel a továbbiakban lépésről lépésre haladva retusálhatjuk videónkat. | ||
Megnyitás: | ||
A program feltételezi, hogy az előteret és a hátteret elkülönítő szegmentálást már elvégeztük, egy másik program
felhasználásával vagy akár kézi szegmentálással, és az eredményt két könyvtárba mentettük el: az egyik a frame-eket
tartalmazza, a másik pedig azok szegmentálását, a maszkokat. A képek bármilyen – a Matlab által ismert –
formátumúak lehetnek (pl. .bmp, .gif, .jpg, .tif), csatornánként 8 bitesnek és azonos méretűeknek kell lenniük.
A képkockákat tartalmazó fájloknak tetszés szerinti nevet adhatunk (például 01.bmp, 02.bmp, stb.), a program név szerinti
sorrendben olvassa be őket, tehát a könyvtár első fájlja lesz az első frame, a második fájl a második frame és így tovább.
Minden maszk fájl nevének és kiterjesztésének rendre meg kell egyeznie a hozzátartozó frame fájl nevével és kiterjesztésével.
A maszkoknak csak az első csatornája kerül felhasználásra, a 0 szín jelenti a hátteret, a 255 az előteret, minden más szín
retusálandó területként van értelmezve (nem kötelező előre kijelölni a kitöltendő területet, a vinpben is meg lehet
azt határozni, lásd a következő lépést). Az első párbeszédablakon található két gomb segítségével tudjuk betölteni a képkockákat (Frame folder), illetve a maszkokat (Mask folder). Mindkét esetben meg kell adnunk a könyvtárak elérési útját. Amikor kijelöltük a könyvtárakat, a program beolvassa azok tartalmát. | ||
1. lépés: A képkockákat és a maszkokat tartalmazó könyvtárak kiválasztása | ||
A retusálandó terület kijelölése: | ||
Lehetőségünk van további retusálandó területek hozzáadására. Kattintsunk a Make hole gombra, majd jelöljük
ki a képen a retusálásra szánt téglalap alakú területet, két átellenben lévő sarkának megadásával. A lépést többször is
megismételhetjük. Ha akarjuk, az összes frame-re egyidejűleg megrajzolhatjuk a téglalapot, ehhez az Apply to all
frames opciót be kell kapcsolni. Ha törölni szeretnénk a most megadott kitöltendő területeket és vissza szeretnénk
térni a maszkok beolvasása utáni állapothoz, kattintsunk a Clear holes gombra. A képkockák és a maszkok nézete
között bármikor átválthatunk a Show mask gombbal. Ha végeztünk a retusálandó terület megadásával, kattintsunk a Finished gombra. Ekkor elkezdődik a retusálási folyamat. | ||
2. lépés: A retusálandó terület kijelölése | ||
Előfeldolgozás: | ||
Elsőként az előfeldolgozási lépés hajtódik végre: a vinp egymás után kiszámítja az optical flow-t, a kameramozgást
és a mozaikokat. A számítás aktuális állását egy folyamatjelzőn láthatjuk, ezenkívül a Matlab szöveges kimenetén is megjelennek az egyes lépések főbb adatai, a későbbi elemzés céljából. | ||
3. lépés: Előfeldolgozás | ||
A mozgó objektum retusálása: | ||
A következő ablak az előtér helyreállításának aktuális állapotáról ad képi információt. Bal oldalon láthatjuk az eredeti,
jobbról pedig a retusált képkockát. A hozzájuk tartozó maszkokat most is megtekinthetjük a Show mask gomb
megnyomásával. A mozgó objektum retusálása alapértelmezésben automatikusan történik. Ha az Advance automatically jelölőnégyzetet kikapcsoljuk, lehetőségünk van minden frame retusálása után eldönteni, hogy elégedettek vagyunk-e az eredménnyel. A Patch size nevű legördülő menüből kiválaszthatjuk, hogy mekkora sugarú négyzettel kívánunk dolgozni, az érték 2 és 9 között lehet. Ha elvégeztük a szükséges beállításokat, kattintsunk az Inpaint gombra az aktuális frame retusálásához. Amikor a helyreállítás véget ért, két eset lehetséges:
| ||
4. lépés: A mozgó objektum retusálása | ||
A háttér retusálása: | ||
Az utolsó részfeladat a szomszédos frame-ekben található ismert pixelek közvetlen átmásolásából és a textúra-szintézisből áll. Ezekhez semmilyen felhasználói beavatkozás nem szükséges. | ||
5. lépés: A háttér retusálása | ||
Az eredmény elmentése: | ||
Végül megtekinthetjük a retusált képkockákat. Az eddigiekhez hasonlóan balról láthatók az eredeti frame-ek, jobbról pedig
azok kijavított változatai. Ha a Link sliders opciót kiválasztjuk, egyszerre tudjuk léptetni az összetartozó
frame-eket. Ha elégedettek vagyunk az eredménnyel, el is menthetjük azt .avi formátumban a Save movie gombra kattintva. A vinp az .avi tömörítéséhez Windows alatt Indeo 5 codecet használ. Unix rendszeren nem történik tömörítés. A program bezárásához az Exit gombot kell megnyomni. | ||
6. lépés: Mentés | ||
Rideg Zoltán, SZTE TTK, 2007. |