Palkittavat Matlab harjoitukset
ps. jos Matlab ei hyväksy kaikkia kuvia, muuta ne esimerkiksi jpg muotoon.
- Tutustu luku- ja piirtofunktioihin imwrite ja imread. Tee funktio, joka lukee kuvan tiedostosta ja näyttää sen ikkunassa, 2p, b. tulosta kuva toiseen ikkunaan? 2p
- Tutustu Matlab ohjelmiston help -> Toolboxes -> Image Processing. Mitä tarkoittavat termit Deblurring, Enhancement, Image Registration, Image Transformation, Morphology ja Segmentation. 2p
- Mitkä ovat Matlabin kuvatyypit? Tutustu info = imfinfo('xxxx.tif') funktioon ja kerro termien tarkoitus. 2.p
- Tee alipäästö- , ylipäästö-, kaistanpäästö- sekä kaistanestosuodattimet < ja > operaatioiden avulla. Käytä kuvana viisiviivaa.JPG
- Hae kuvasta prikkoja ja levyjä, a. levyt b. prikat. 2p.
- Poista tiedostosta KolikotNoise.tif "roskat". Testaa filter funktioita. Yritä etsiä tapa, joka ei huonontaisi kuvaa. 2p.
- Selvitä imclearborder funktion toiminta sekä funktion parametrien tarkoitus. Kokeile funktoita kuvaan palikkoja rajoilla kuvaan. 2p.
- Tee ekvalisaattorifunktio, joka "levittää" minkä tahansa uint8 kuvan koko alueelle 0...255. Huom! imread funktio lukee kuvan siinä muodossa, jossa se on alkuperäisessä kuvassa eli muuta kuva ensin uint8- muotoon. Saat matriisin pienimmän alkion arvon funktiolla min(min(kuva)) ja suurimman arvon max(max(kuva)), kun kuva on uint8 matriisi. ps. yksi max tai min antaa matriisin rivien maksimi tai vastaavasti minimi arvon.
- Näytä kuvan viisiviivaa.JPG profiili pystysuunnassa funktiolla plot(kuve(x,:)) kokeile myös plot(kuve(:,y)). Valitse x ja y siten, että näet jotain hyödyllistä. 2p
- Double tyypin kuvan matriisin alkioiden arvot ovat välillä 0...1. Kuva2= double(kuva) muuntaa matriisin alkiot double tyypeiksi, muttei skaalaa niitä oikealle arvovälille. Tee esimerkki jossa on myös skaalaus. Käytä viisiviivaa.JPG kuvaa testaukseen. 2p
- Tee maski, joka poistaa kuvasta viisiviivaa.JPG keskimmäisen viivan. Halutun osan kuvasta saa "värjättyä" haluamakseen kuva(Xalku:Xloppu,Yalku:Yloppu) = HaluttuArvo. Tarkista vaikka tehtävällä 9 taustan kirkkauden arvo, jotta saat oikean peittokirkkauden. 2p
- Toteuta tehtävän 4 eri kuvien tulostus subplot(1,2,1), imshow(viivat5), subplot(1,2,2), imshow(viivat4) jne. käskyillä siten, että kaikki kuvat tulostuvat yhteen ikkunaan. 2p
- Yhdistä kuvan AvoinSuorakaide.bmp avoin suorakaide päät. Tee yhdistäminen siten, ettei viivat vahvene. 2p.
- Hae kuvasta palikka reunat edge funktiolla. 2p.
- Hae edellisestä kuvasta pystyreunat strel ja imerode funktioita hyväksi käyttäen. 1p
- Hae edellisestä kuvasta vaakareunat strel ja imerode funktioita hyväksi käyttäen. 1p
- Testaa kuvien yhdistämistä kahdella tavalla a I3=(I2+I1)2 ja sitten imlincomb funktiolla I3 = imlincomb(.5,I1,.5,I2); Onko tuloksilla eroa? 1p
- Vertaike imview ja imshow funktioita, mikä on niiden välinen ero? 1p
- Lue jokin 1-bittinen kuva ja muuta sen "valkoiset" bitit punaisiksi ja "mustat" bitit sinisiksi. 1p
- Tutustu funktioihin islogical, isgray, isind. Etsi kuvat, joissa funktiot palauttavat arvon 1. 1p
- Tee matriisi A=zeros(i,j) laita matriisin alkioiden arvot siten, että ne alkavat ylhäällä nollasta ja päätyvät alhaalla arvoon 255 malli. Kirjoita kuva imwrite funktiolla 8-bittisenä harmaasävykuvana tiedostoon ja lue se sieltä takaisin, jotta voit todeta tehtävän onnistuneen. 3p
- Hae palikoita kuvasta pienimmän palikan keskipiste. 3p
- Hae kuvasta neliö tähti ja ympyrä ainoastaan yksi kuvio kuvaan kerrallaan ja hae sen keskipiste. 3p
- Muuta kuva kolme ruuvia mustavalkokuvaksi. 3p
- Zoomaa edellinen kuva siten, että ruuvit täyttävät koko kuva-alan. Tämän täytyy tapahtua automaattisesti vaikka ruuvit olisivat myös muissa asennoissa. Kokeile myös muilla kuvilla. 5p
- Hae edellisen kuvan ruuveista sen ruuvin keskipiste, joka on pystyssä. 3p
- Hae kuvasta neliö tähti ja ympyrä (testaa palikoita kuvalla) se kappale, joka on lähimpänä kuva-alueen keskipistettä. Hae kuva-alueen keskipisteen paikka ja sitten osien kp:t ja mittaa etäisyys. 6p