...
- Tutustu luku- ja piirtofunktioihin imwrite ja imread. Tee funktio, joka lukee kuvan tiedostosta ja näyttää sen ikkunassa, 2p, b. tulosta imwritellä talletettu kuva toiseen ikkunaan? 2p
- Tutustu Matlab ohjelmiston help -> Toolboxes -> Image Processing. Mitä tarkoittaa kuvan rekisteröinti (Image Registration)? 3p jos saat hyvän selityksen wikiin. Esim.
- Mitä tarkoittaa morphologia ja tässä yhtydessä yhteydessä strukturoiva elementti? 3p jos saat hyvän selityksen wikiin.morphologia2p . Kokeile dilate, erode, open ja close funktioita. Tutustu wiki
- Mitä tarkoittaa Segmentation . 3p jos saat hyvän selityksen wikiin2p Kokeile helpin esimerkit komentorivillä.
- Mitä tarkoittaa termi Image Deblurring ? 3p jos saat hyvän selityksen wikiin2p. Kokeile helpin esimerkit komentorivillä.
- Mitä tarkoittaa ROI based Processing ? 3p jos saat hyvän selityksen wikiin2p. Kokeile helpin esimerkit komentorivillä.
- Mitä tarkoittaa Spatial Image Transformation ? 3p jos saat hyvän selityksen wikiin2p . Kokeile helpin esimerkit komentorivillä.
- Mitä muita kuvatyyppejä on olemassa kuin RGB? 1...n 2 p Vastaus
- Mitkä ovat Matlabin kuvatyypit ja toisaalta kuvaformaatit? Tutustu info = imfinfo('xxxx.tif') funktioon ja kerro termien tarkoitus. 2p.
- Hae kuvasta Palikka.gif Palikka.bmp valkoisen neliön keskipiste, pinta-ala ja ympärysmitta, Eulerin numroeulerin numero, Orientaatioorientaatio, kappaletta rajoittava nelikulmiosuorakulmio, kappaleen ja ympäröivän neliön suorakulmion pinta-alojen suhde, ympärysmitta pikseleinä,
'Extrema'
'PixelIdxList''
'ConvexArea'
'FilledArea'
'PixelList'
'ConvexHull'
'FilledImage'
'Solidity'
'ConvexImage'
'Image'
'SubarrayIdx'
'Eccentricity'
'MajorAxisLength'
'EquivDiameter'
'MinorAxisLength'Regionprops voi auttaa. 2p.
- neliön kulmien koordinaatit. Käytä regionprops funktioita. 5p
- Vertaa regionprops ja bwarea funktioita toisiinsa palikoita kuvalla. Mitä huomaat? 2p.
- Testaa bwconncomp funktio edellisen tehtävän kuvalla ja kuvalla KaksiPalikkaa.gif (muuta kuva .bmp muotoon esim. Paintilla, jotta kuva näkyy Matlabissa ) testaa connectivity parametrin toiminta. 2p.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.
- Ota kuvasta Palikka.gif alue uuteen kuvaan, joka on 100 pikseliä palikan keskipisteestä ylös, alas ja sivuille. 2p
- Erottele kuvasta PrikkojaJaLevyja.bmp osat omiin kuviinsa ja rajaa kuvat kappaleen koon mukaan. 4p
- Erottele edellisen tehtävän prikat omaan kuvaan ja täytä reiät. 2p
- Editoi funktiota siten, että se löytää kuvasta DSC_1632.JPG kuvasta a. vasemmanpuoleisen b keskimmäisen kaukosäätimen. DSC_1631.JPG DSC_1632.JPG DSC_1633.JPG 4p
- 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 PalikkaJaRajoilla.bmp . 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. Vertaa saamaasi tulosta imadjust(I) funktion tuottamaan tulokseen. 2p
- Testaa edellinen tehtävä PrikkojaJaLevyja labeloidulla kuvalla. 2p
- Näytä kuvan viisiviivaa.JPG profiili pystysuunnassa funktiolla plot(kuvekuva(x,:)) kokeile myös plot(kuvekuva(:,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. Eli, jotta double tyypin kuva näkyisi oikein, pitää arvojen olla välillä 0...1. Funktio double() pitää arvot alkuperäisellä arvovälillä eli esim välillä 0..255, jolloin kaikkien pikselien arvot tuleee jakaa 255:llä. Jakolasku tehdään kuva ./ jakaja operaattorilla piste jakoviivan edessä tarkoittaa että jokainen pikseli (matriisin alkio) jaetaan halutulla luvulla. 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(Yalku:Yloppu,Xalku:Xloppu,Yalku:Yloppu) = HaluttuArvo. Tarkista vaikka tehtävällä 9 taustan kirkkauden arvo, jotta saat oikean peittokirkkauden. 2p
- Toteuta tehtävän 4 15 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. 1p2p
- Hae edellisestä kuvasta vaakareunat strel ja imerode funktioita hyväksi käyttäen. 1p2p
- Testaa kuvien yhdistämistä kahdella tavalla a I3=(I2+I1)./ 2 (ehkä piste jakoviivan eteen?) ja sitten imlincomb funktiolla I3 = imlincomb(.5,I1,.5,I2); Onko tuloksilla eroa? 1p2p
- Vertaike imview ja imshow funktioita, mikä on niiden välinen ero? 1p2p
- Lue jokin 1-bittinen kuva ja muuta sen "valkoiset" bitit punaisiksi ja "mustat" bitit sinisiksi. 1p2p
- Tutustu funktioihin islogical, isgray, isind. Etsi kuvat, joissa funktiot palauttavat arvon 1. 1p2p
- 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
- Rajaa edellistä kuvaa siten, että vain pystyssä oleva ruuvi ruuvi on kuvassa.(käytä regionprops orientation määrittelyä ) 3p
- 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
- Ota käyttöön OpenCv kirjasto Qt:n yhteydessä ja tee ohjelma, jolla lataat kuvan ohjelmaan ja näytät sen dialogissa. 4p
- Testaa ohjelma QImageTest.zip ja kommentoi koodi.