Zklady potaovej grafiky a spracovania obrazu Dtov truktry
Základy počítačovej grafiky a spracovania obrazu Dátové štruktúry Úvod do MATLAB-u II Doc. RNDr. Milan Ftáčnik, CSc. RNDr. Júlia Škovierová (Kučerová), Ph. D.
Úlohy na dátové štruktúry �U 1: Napíšte reťazcový kód pre obrázok 1 a 2 �U 2: Napíšte normalizovaný reťazcový kód pre obrázok 1 a 2 (reprezentuje najmenšie číslo) Rozpoznávanie obrazcov a spracovanie obrazu 2015/2016 2
Úlohy na dátové štruktúry II �U 3: Napíšte RL kód pre obrázok 1 a 2 �U 4: Určte kompresný pomer pre obidva obrazy a ich RL kódy Rozpoznávanie obrazcov a spracovanie obrazu 2015/2016 3
Úlohy na dátové štruktúry III �U 5: Nakreslite graf susednosti pre obraz vpravo �U 6: Nakreslite obraz, ktorý bude mať rovnakú maticu susednosti ako obrázok nad, ale bude reprezentovať jednoduchú scénu Rozpoznávanie obrazcov a spracovanie obrazu 2015/2016 4
Úlohy na dátové štruktúry IV �U 7: Vypočítajte veľkosť M-pyramídy pre obraz rozmeru N² �U 8: Akú inú funkciu by ste použili na výpočet hodnoty v ďalšej úrovni T-pyramídy (okrem priemeru)? �U 9: Aký je rozdiel medzi T-pyramídami a kvadrantovými stromami? Rozpoznávanie obrazcov a spracovanie obrazu 2015/2016 5
Úlohy na dátové štruktúry V U 10: Z binárneho obrazu 8 x 8 pixelov (na obrázku) vytvorte kvadrantový strom, v ktorom pomenujete kvadranty a v listoch funkčné hodnoty Rozpoznávanie obrazcov a spracovanie obrazu 2015/2016 6
Úlohy na dátové štruktúry VI U 11: Ako by ste vytvorili z kvadrantového stromu tzv. listový kód (lineárny zápis bez grafiky)? Ukážte to prakticky na nasledujúcom obraze Rozpoznávanie obrazcov a spracovanie obrazu 2015/2016 7
Úlohy na dátové štruktúry VII �U 12: Ako sa dá matica použiť na vyjadrenie informácie o segmentovaní obrazu? �U 13: Aké iná dátová štruktúra sa dá využiť na vyjadrenie informácie o segmentovaní obrazu? �U 14: Aký význam majú hierarchické dátové štruktúry oproti tradičným dátovým štruktúram? Rozpoznávanie obrazcov a spracovanie obrazu 2015/2016 8
Dokončenie sčítania obrazov �Sčítavame obrazy, ktoré sú rovnako veľké �Označíme r 1, c 1 ako počet riadkov a stĺpcov prvého obrazu a podobne r 2 a c 2 �Zapíšem obrazy I a J do I 1 a J 1 s novými rozmermi �Potom output = (I 1 + J 1)/2 a zobrazím výsledok Základy počítačovej grafiky a spracovanie obrazu 2016/2017 9
Súradnicový systém Základy počítačovej grafiky a spracovanie obrazu 2016/2017 10
Obraz ako matica Základy počítačovej grafiky a spracovanie obrazu 2016/2017 11
Načítanie a veľkosť obrazu Základy počítačovej grafiky a spracovanie obrazu 2016/2017 12
Zobrazovanie obrazu Základy počítačovej grafiky a spracovanie obrazu 2016/2017 13
Ukážka nízkeho kontrastu Základy počítačovej grafiky a spracovanie obrazu 2016/2017 14
Triedy (typy) dát obrazu Základy počítačovej grafiky a spracovanie obrazu 2016/2017 15
Zmena triedy dát Základy počítačovej grafiky a spracovanie obrazu 2016/2017 16
M-file �Ukladajú sa ako meno. m a editujú sa v editore MATLABu �Súčasťou m-file je: Základy počítačovej grafiky a spracovanie obrazu 2016/2017 17
Riadok definície funkcie �Píše sa nasledovne: �Napr. funkcia súčtu a súčinu 2 obrazov �Volanie funkcie: Základy počítačovej grafiky a spracovanie obrazu 2016/2017 18
Riadok H 1 �Je to textový riadok hneď po riadku definície funkcie, ktorý obsahuje jednoduchý komentár o činnosti funkcie, napr. �Riadok H 1 sa objaví po zadaní príkazu Základy počítačovej grafiky a spracovanie obrazu 2016/2017 19
Ostatné časti M-filu �Help text nasleduje za riadkom H 1 do prvého vykonateľného príkazu, pričom každý riadok začína % �Telo funkcie obsahuje MATLAB-ovský kód �Komentárové riadky – všetky, ktoré sa začínajú % a nie sú súčasťou H 1 a Help Základy počítačovej grafiky a spracovanie obrazu 2016/2017 20
Aritmetické operátory Základy počítačovej grafiky a spracovanie obrazu 2016/2017 21
Zašumenie obrazu �Zvolíme aditívny Gaussovský šum – veľkosť smerodajnej odchýlky bude vstupným parametrom programu �Ako druhý zvolíme čiernobiely šum (salt & pepper), pričom vstupom budú dve hodnoty (percento zašumenia čiernym šumom a percento zašumenia bielym šumom) Základy počítačovej grafiky a spracovanie obrazu 2016/2017 22
Gaussovský šum Základy počítačovej grafiky a spracovanie obrazu 2016/2017 23
Gaussovský šum 2 � Základy počítačovej grafiky a spracovanie obrazu 2016/2017 24
Gaussovský šum 3 �Keď už máme maticu s náhodnými číslami a rozdelením N(0, b), kde b vstup funkcie, tak spočítam túto maticu so vstupným obrazom (predtým z neho treba urobiť typ double), aby sa správne spočítali �Súčet treba vrátiť do intervalu (0, 255), čo dosiahneme pomocou funkcie uint 8 �Potom výstup zobrazíme Základy počítačovej grafiky a spracovanie obrazu 2016/2017 25
Čierno-biely impulzný šum �Chceme 20% bieleho šumu, 10% čierneho šumu, ostatná časť obrazu sa nezmení – opäť použijeme randn(size(A)) a funkciu Základy počítačovej grafiky a spracovanie obrazu 2016/2017 26
Čierno-biely impulzný šum II �funkciu, ktorá vráti hodnoty zodpovedajúce zvoleným percentám pri normálnom rozdelení N(0, 1) je funkcia norminv(P, 0, 1), kde P je zvolený interval zapísaný v hranatých zátvorkách ako vektor, napr. [0. 1 0. 8], parameter 0 zodpovedá strednej hodnote a parameter 1 zodpovedá strednej odchýlke Základy počítačovej grafiky a spracovanie obrazu 2016/2017 27
Čierno-biely impulzný šum III �Funkcia norminv(P, 0, 1) vráti dve hodnoty, ľavého intervalu a pravého intervalu �Porovnávame hodnoty vygenerovanej náhodnej matice – ak je menšia ako hodnota ľavého intervalu, tak do obrazu zapíšeme 0 (čiernu), ak je väčšia, zapíšeme 255 (bielu), inak hodnotu v danom pixli matice nezmeníme Základy počítačovej grafiky a spracovanie obrazu 2016/2017 28
Zväčšovanie a zmenšovanie obrazu �Zväčšovanie a zmenšovanie obrazu robíme dvoma technikami – metódou najbližšieho suseda a bilineárnou interpoláciou a porovnáme výstup �Parametre funkcie sú počet riadkov RJ a počet stĺpcov CJ výstupného obrazu J, pričom vstupný obraz I má rozmery RI a CI �Pomôcka nasleduje: Základy počítačovej grafiky a spracovanie obrazu 2016/2017 29
Zväčšovanie- najbližší sused �[row col] = size(I); �Sr = row/RJ; Sc = col/CJ; �for r = 1: RJ � for c = 1: CJ � rf = r*Sr; cf = c*Sc; � rf = floor(rf); cf =floor(cf); � rf(rf < 1) = 1; � cf(cf < 1) = 1; � rf(rf > row - 1) = row - 1; � cf(cf > col - 1) = col - 1; � J(r, c) = I(rf, cf); � end; �end; Základy počítačovej grafiky a spracovanie obrazu 2016/2017 30
Bilineárna interpolácia � Základy počítačovej grafiky a spracovanie obrazu 2016/2017 31
Bilineárna interpolácia 2 Základy počítačovej grafiky a spracovanie obrazu 2016/2017 32
- Slides: 32