TL553 DSK, laboraatiot (.5 op) Kuvasignaalit Jyrki Laitinen
TL553 DSK, laboraatiot (.5 op), K25 Suorita oheisten ohjeiden mukaiset tehtävät Matlab- ja VCDemo-ohjelmistoja käyttäen. Kokoa erilliseen mittauspöytäkirjaan vastaukset kursiivilla merkittyihin tehtäviin ja kysymyksiin. Merkitse pöytäkirjan etulehdelle opintojakson koodi ja nimi, laboraation otsikko, suorituspäivämäärä sekä työryhmän jäsenten nimet ja luokkatunnukset. Palauta mittauspöytäkirja opettajalle laboraatiovuoron päättyessä. Alustus Perusta käyttöösi työhakemisto D:\Temp, johon tallennat kaikki tekemäsi välitulokset, tarvittavat datatiedostot, yms. Tuhoa laboraatiovuoron päättyessä työhakemisto ja sen sisältämät tiedostot. Signaalit Kopioi sivulta http://www.tekniikka.oamk.fi/~jyrkila/tl553.k25.html (opintojakson webbisivu) kuvatiedostot lena.bmp ja perhonen.bmp työhakemistoosi. Tiedostot sisältävät harmaasävykuvia bmp-formaatissa. Teoriaa Harmaasävykuva voidaan esittää matriisina, jossa yksittäisten matriisielementtien arvot vastaavat eri harmaasävyjä. Yksittäisiä kuvaelementtejä kutsutaan (kuva) pikseleiksi. Sävyt voidaan koodata usealla eri tavalla, mutta usein sävyarvot esitetään 8-bitin tarkkuudella siten, että käytettävissä on 2 8 256 eri tasoa. Tasoja kuvataan yleensä numeroarvoilla (musta).. 255 (valkoinen). Harmaasävykuva 253 252 25 249 249 255 24 238 244 25 3 96 89 69 8 68 76 57 6 58 248 33 73 53 42 43 35 48 34 28 255 236 252 34 3 38 42 46 29 36 255 247 24 247 4 3 32 3 3 2 99 99 95 64 78 59 59 8 4 65 58 57 46 98 45 75 98 76 8 88 77 9 39 83 84 8 72 4 39 75 4 9 43 56 63 56 55 69 76 6 57 42 64 7 79 58 57 5 96
TL553 DSK, laboraatiot (.5 op), K25 2 Kuvien yksityiskohtia voidaan korostaa tai hävittää erilaisilla suotimilla. Suodatuksessa kuvan jokaiselle pikselille lasketaan uusi arvo sen vanhan arvon ympäröivien pikseleiden arvojen perusteella. Esimerkiksi alla oleva kuva voidaan keskiarvosuodattaa korvamalla kuvan jokainen pikseliarvo 3x3 kokoisen kuva-alueen (maski) arvojen keskiarvolla. Korvattava pikseliarvo on maskin keskimmäinen arvo. Kuvan tilanteessa arvo 34 korvattaisiin arvolla 3 ja tämän jälkeen maski siirrettäisiin arvon 3 kohdalle, jossa keskiarvo laskettaisiin uudelleen, jne. New 73 + 53 + 42 + 252 + 34 + 9 9 9 9 9 + 3 + 24 + 247 + 4 9 9 9 9 3 253 252 25 249 249 255 24 238 244 25 3 96 89 69 8 68 76 57 6 58 248 33 73 53 42 43 35 48 34 28 255 236 252 34 3 38 42 46 29 36 255 247 24 247 4 3 32 3 3 2 99 99 95 64 78 59 59 8 4 65 58 57 46 98 45 75 98 76 8 88 77 9 39 83 84 8 72 4 39 75 4 9 43 56 63 56 55 69 76 6 57 42 64 7 79 58 57 5 96 Maski on kuvan kokoon nähden yleensä pieni (edellä esimerkiksi 3x3), jotta laskennan määrä pysyy kohtuullisena. Esimerkiksi 52x52-pikseliä kokoisen harmaasävykuvan suodattaminen 3x3-maskilla vaatii yleisessä tapauksessa 2359296 kertolaskua ja 2359295 yhteenlaskua. Maskeja on eri tarkoituksiin hyvin erilaisia.. Lue kopioimasi kuvatiedostot ja niiden käyttämä värikartta (map) Matlabiin imread-komennolla. Määritä kuvan esityksessä käytettävä värikartta colormap - komennolla. Tulosta kuva näytölle imagesc-komennolla. Akseliston saat suorakulmaiseksi tarvittaessa axis( square )-komennolla. Määritä kuvatiedostojen koko pikseleinä ja bitteinä. Oletetaan, että kuvatiedostossa lena.bmp olevan kuvan kaltaisia kuvia siirretään 25 kappaletta sekunnissa (eurooppalainen tv-standardi) ja että siirrettäviä kuvia suodatetaan reaaliajassa 3x3-maskilla. Kuinka monta kertolasku- ja yhteenlaskuoperaatiota täytyy suorittaa sekunnin aikana? Aseta värikartaksi colormap-komennolla gray(256).
TL553 DSK, laboraatiot (.5 op), K25 3 Testikuvio Toteuta Matlabissa oheisen kuvion mukainen 256x52-elementin kokoinen taulukko (matriisi). Isot neliöt ovat kooltaan 256x256 elementtiä ja pienet neliöt 28x28 elementtiä. Aseta tumman alueen arvoksi 3, vaalean alueen arvoksi 223 ja kummankin pienen neliön arvoksi 27.. Katso toteuttamasi matriisin muodostamaa kuvasignaalia imagesc-komennolla. Minkä ihmisen näköaistin ominaisuuden havaitset kuviossa? Säädä oikeanpuoleisen harmaan pikkuneliön taso sellaiseksi, että pienet neliöt näyttävät olevan samaa harmaatasoa. Jos onnistut, esitä ehdon toteuttava harmaataso mittauspöytäkirjassa. Suodatus Toteuta Matlabiin seuraavat keskiarvosuodatuksen toteuttavat suodinmaskit 9 h, 25 2 h, 49 3 h ja
TL553 DSK, laboraatiot (.5 op), K25 4 225 h4. Suodata filter2-komentoa käyttäen testikuva, lena ja perhonen maskeilla h, h2, h3 ja h4. Piirrä suodatetut kuvat imagesc-komennolla. Arvioi suodatustulosta. Millaisista suotimista tässä on suodatustuloksen perusteella kyse? Miten maskin koko vaikuttaa tulokseen? 2. Piirrä freqz2-komennolla suotimien h, h2, h3, h4 amplitudispektrit. Mitä voit päätellä spektreistä? Kohina Muodosta kuvasignaalit lenan ja lenan2 lisäämällä imnoise-komennolla lenaan normaalijakautunutta (gaussian) kohinaa ja pippuri ja suola (salt & pepper) kohinaa. Katso kohinaiset kuvat imagesc-komennolla.. Suodata filter2-komentoa käyttäen kohinaiset kuvat maskilla h2 Piirrä suodatetut kuvat imagesc-komennolla. Arvioi suodatustulosta. Kumpaa kohinatyyppiä keskiarvoistava suodin poistaa paremmin?
TL553 DSK, laboraatiot (.5 op), K25 5 2. Suodata kohinaiset kuvat 5x5-mediaanisuotimella medfilt2-komentoa käyttäen. Piirrä suodatetut kuvat imagesc-komennolla. Arvioi suodatustulosta. Kumpaa kohinatyyppiä mediaanisuodin poistaa paremmin? Vertaile keskiarvoistavan suotimen ja mediaanisuotimen soveltuvuutta kuvasignaalin kohinan poistoon. Reunanilmaisu Toteuta Matlabiin seuraavat suodinmaskit h 2 2 2 h22 2 2 Näitä kutsutaan kuvankäsittelyn teoriassa Sobel-operaattoreiksi.. Suodata filter2-komentoa käyttäen testikuva, lena ja perhonen Sobeloperaattoreilla h2 ja h22. Sijoita suodatut kuvat muuttujiin. Katso suodatustuloksia imagesc-komenolla. Millaisia piirteitä Sobel-operaattorit kuvissa korostavat? Miten operaattorilla h2 suodatettu kuva eroaa operaattorilla h22 suodatetusta kuvasta? 2. Muodosta kunkin kuvan tapauksessa operaattorilla h2 ja operaattorilla h22 suodatetun kuvan itseisarvojen (abs-funktio) summa. Piirrä summa imagesckomennolla. Millaiset piirteet kuvassa korostuvat? 3. Huomaa, että Sobel-operaatoreiden arvojen summa on. Millaisen vasteen Sobel-operaattorit tuottavat tasaiselta kuva-alueelta? Entä muutoskohdista? 4. Tässä tehtävässä kuvatun kaltaista ilmaisua voidaan tehdä myös muunlaisilla maskeilla. Mieti millaisilla kahdella 2x2-maskilla voitaisiin korostaa samoja piirteitä kuin 3x3-kokoisilla Sobel-operaattoreilla. Esitä kehittämäsi maskit mittauspöytäkirjassa. Suodata maskeilla lena ja muodosta suodatettujen signaalien itseisarvojen summa. Piirrä summa imagesc-komennolla ja arvioi maskiesi onnistumista.
TL553 DSK, laboraatiot (.5 op), K25 6 VCDemo Käynnistä VCDemo-ohjelmisto. Lataa ohjelmaan työhakemistostasi lena- ja perhonen-kuvat.. Tutki lena- ja perhonen-kuvilla PCM-koodausta. Käytä kvantisointiin eri bittimääriä. Määritä kummallakin kuvalla se bittimäärä, jolla havaitset kvantisoinnin vaikutuksen kuvan laatuun. 2. Kvantisoi perhonen neljällä bitillä. Toista tämän jälkeen kvantisointi neljällä bitillä kuitenkin niin, että lisäät kvantisoituun kuvaan kohinaa (dithering, apply dither). Miten kohinan lisäys muuttaa tuloskuvaa? Millaisessa sovelluksessa tätä ilmiötä voidaan hyödyntää (itse asiassa hyödynnetäänkin)? 3. Lisää lena- ja perhonen-kuviin tiedonsiirtokanavassa syntyviä virheitä (errors). Millainen virhetodennäköisyys aiheuttaa kuvan tulkintaa vaikeuttavaa laadun huononemista? Poikkeaako tulos lena- ja perhonen-kuvien välillä? Jos, niin miksi? Miten voisit parantaa lopputulosta?