Zadanie z predmetu počítačové videnie |
|||||
Autori |
Tomáš Šmajda Zsolt Varga |
||||
Úloha |
Vytvorte aplikáciu (J++ pod OS Windows), ktorá na základe dvoch obrázkov (bmp, jpg, gif, ...) určí vektor pohybu lego robota a zakreslí ho do obrázku. Funkčnosť aplikácie overte experimentami na testovacej sade obrázkov. | ||||
Riešenie |
Pohyb robota sa dá jednoducho určiť porovnaním všetkých pixelov na jednom i druhom obrázku. Avšak na obrázku sa pohybujú aj iné objekty a preto bolo nutné odlíšiť robota od ostatných objektov. Jedinou charakteristickou vlastnosťou tohto robota je to, že obsahuje farbu, ktorá sa inde na obrázku nevyskytuje (zelená fosforová) a to bolo aj hlavnou myšlienkou algoritmu. | ||||
Popis algoritmu |
V prvom cykle sa porovnáva pixel po pixely. Ak pixel nie je totožný, alebo jeho zložky RGB nespadajú do vopred stanovenej hranice (tá bola zistená empiricky) je nahradený
pixelom z druhého obrázku. Ďalšia podmienka testuje to, či pixel na prvom
obrázku nemá zeleno-fosforovú farbu, alebo jeho zložky RGB nespadajú do vopred stanovenej hranice (opäť bola použitá empíria). Ak áno, to
zabezpečí spoľahlivú detekciu robota a získanie začiatočného
bodu vektora. V druhom cykle sa tým istým spôsobom získa koncový bod vektora.
Nakoniec sa všetky zmeny vykreslia do obrázkov. Prepis algoritmu do jazyka C:
|
||||
Experimenty |
Tu je niekoľko ukážok fungovania algoritmu:
|
||||
Používateľská príručka |
Spustenie programu Kliknutím na súbor comp_vision.exe sa zobrazí hlavné okno (Computer Vision). Načítanie obrázku V ponuke File kliknite na položku Open a ukážte na položku Picture 1 resp. Picture 2. Uloženie obrázku V ponuke File kliknite na položku Save a ukážte na položku Picture 1 resp. Picture 2. Nájdenie vektora pohybu robota V ponuke Edit kliknite na položku Get vector, alebo stlačte kombináciu kláves Ctrl G (ak nie sú načítané oba obrázky, príkaz Get vector sa nevykoná). Ukončenie aplikácie V ponuke File kliknite na položku Exit, alebo stlačte kombináciu kláves Ctrl E. |
||||
Záver |
Fungovanie algoritmu je dostatoène spoľahlivé (viď obr.). Problémy s nájdením robota však môžu (ale nemusia) nastať (načo sa ale nedá spoliehať) vtedy, ak sa na obrázku vyskytnú roboty dva, a nie sú spoľahlivo farebne rozlíšené. | ||||
Zdrojové súbory |
'comp_vision.exe' - spustiteľný súbor
(OS Windows). 'samples.zip' - sada testovacích obrázkov. |