Perusaritmetiikkaa kuville
Yhteen-, vähennys-, kerto- ja jakolaskut on määritelty kuville pisteoperaatioina siten, ettei ylivuodoista tai kuvapisteiden arvojen tyyppimuunnoksista tarvitse erikseen huolehtia.
Esimerkki
Katsotaan lähemmin kuvien summaamista imadd komennolla, joka saa parametrikseen summattavat kuvat. Tehdään ensin koe matriisista transpoosi ja summataa se alkuperäisen koematriisin kanssa ja näytetään saadut kuvat vierekkäin yhdessä ikkunassa.
koe2 = koe'; add = imadd(koe, koe2); figure(1); title('Kuvien summaamista'); subplot(1,3,1)imshow(koe, gray(256)); title('koe'); subplot(1,3,2)imshow(add, gray(256)); title('koe + koe2 = add'); subplot(1,3,3)imshow(koe2, gray(256)); title('koe2');
Puolet summakuvasta on valkoista, tämä puolisko muodostuu summauksen ylivuodosta, eli yhteenlaskettu arvo on suurempi, kuin suurin sallittu arvo 255. Funktio imadd katkaisee ylivuotavat arvot automaattisesti lähimpään sallittuun arvoon, eli tässä tapauksessa valkoisen värin arvoon 255.
Kuvaan voi myös summata vakion, joka kauttaaltaan lisää tai vähentää kuvan kirkkautta. Luonnollisemman kirkkauden muutoksen saa skaalaus, eli kertolaskuoperaatiolla joka säilyttää kuvan eriosien kirkkauden suhteen ennallaan. Vähennyslasku- ja jakolaskuoperaatioita voidaan käyttää mm. muutosten etsimiseen kuvasta. Kaikkia aritmeettisia operaatioita käytettäessä pitää argumenttina olevien kuvien olla samankokoisia ja samaa tyyppiä (esim. double).
Esimerkki
Tehdään erotuskuva subtract, tulokuva multiply ja osamääräkuva divide. Kuvat voidaan näyttää imadd esimerkin mukaisesti samassa ikkunassa figure ja subplot komennoilla.
subtract = imsubtract(koe, koe2); multiply = immultiply(koe, koe2); divide = imdivide(koe, koe2);
Interpolaatio ja kuvan koon muuttaminen
Mikäli kuvan kokoa halutaan muuttaa täytyy alkuperäisen kuvan pikseleistä laskea arvot suuremmalle tai pienemmälle pikselijoukolle. Interpolaatiolla tarkoitetaan sitä laskentatapaa, jolla uuteen erikokoiseen kuvaan saadaan pikselien harmaasävyarvot alkuperäisiä hyväksikäyttäen. Matlabissa voidaan käyttää kolmea eri interpolointimetodia (nearest neighbour, bilinear ja cubiclinear interpolation) uusien arvojen laskemiseen.
Kuvaa pienennettäessä kuvainformaation määrä aina vähenee, mikä aiheuttaa tuloskuvaan mm. laskostumisesta (aliasing) aiheutuvia virheitä. Nämä virheet esiintyvät ei-haluttuina Moiren kuvioina, joidenka syntyä voidaan kuitenkin ehkäistä alipäästösuodattamalla kuva ennen interpolointia. Matlabissa kuvien koon muuttaminen tapahtuu imresize funktiolla, joka automaattisesti alipäästösuodattaa kuvaa ennen koon muuttamista.
Esimerkki
Vertaillaan eri interpolointimetodien vaikutusta lopputulokseen tekemällä samasta alkuperäiskuvasta A kaksi suurennettua versiota, joista toisessa käytetään Matlabin oletusarvoa eli nearest neighbour interpolointia ja toisessa enemmän laskentaa vaativaa, mutta paremman tuloksen antavaa cubiclinear interpolointia. Käytetää imresize funktiolle parametrina skaalauskerrointa 2 ja haluttua interpolointimenetelmää.
resize1 = imresize(A, 2); resize2 = imresize(A, 2, 'bicubic'); imshow(resize1); title('A suurennettuna parametrilla 2'); imshow(resize2, gray(256)); title('A suurennettuna parametrilla 2 ja bicubic');
Histogrammit
Harmaasävyjen jakautumista kuvassa voidaan tarkastella harmaasävyhistogrammin avulla. Komento imhist näyttää kuvan histogrammin, eli intensiteettijakauman. Hyvän kontrastin saavuttamiseksi olisi eri harmaasävyjen jakauduttava mahdollisimman tasaisesti koko skaalalle. Harmaasävyjen ollessa epätasaisesti jakautuneita voidaan tasoitus suorittaa histeq funktiolla. Histogrammin oikeassa laidassa näkyvät matalat intensiteetit vastaavat kuvassa tummia sävyjä, keskeltä löytyvät keskiharmaat ja vasemmalta vaaleat sävyt.
Esimerkki
Tehdään kuvasta A histogrammitasoitettu kuva histequalized ja näytetään sen histogrammi. Kannattaa tehdä vertailuja alkuperäiseen kuvan ja histogrammitasoitetun kuvan välillä, sekä niiden histogrammien välillä.
histequalized = histeq(B); figure(1); imshow(A, gray(256)); title('Kuva B'); figure(2); imhist(A); title('Kuvan B harmaasävyhistogrammi');