T-75.4100 Digitaalinen kuvatekniikka Kevät 2015 Harjoitus 1: Kameran kuvanprosessointi



Samankaltaiset tiedostot
Toinen harjoitustyö. ASCII-grafiikkaa

Tieteellinen laskenta 2 Törmäykset

Harjoitus 1: Matlab. Harjoitus 1: Matlab. Mat Sovelletun matematiikan tietokonetyöt 1. Syksy 2006

Tehtävään voi perinteisen arviointitavan tilalle ottaa käyttöön monipuolisemman matriisiarvioinnin tai arviointioppaan.

Laskuharjoitus 9, tehtävä 6

Mitä on konvoluutio? Tutustu kuvankäsittelyyn

Matriisit ovat matlabin perustietotyyppejä. Yksinkertaisimmillaan voimme esitellä ja tallentaa 1x1 vektorin seuraavasti: >> a = 9.81 a = 9.

Markkinoitten mallintaminen ja Internet-markkinat

Valokuvien matematiikkaa

Tehtävän lisääminen ja tärkeimmät asetukset

Kohdeyleisö: toisen vuoden teekkari

Gaussin ja Jordanin eliminointimenetelmä

3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä

Matriisilaskenta Laskuharjoitus 1 - Ratkaisut / vko 37

Tampereen yliopisto Tietokonegrafiikka 2013 Tietojenkäsittelytiede Harjoitus

Tehtäväsarja I Seuraavat tehtävät liittyvät kurssimateriaalin lukuun 7 eli vapauden käsitteeseen ja homogeenisiin

S Laskennallinen Neurotiede

Harjoitus 4 -- Ratkaisut

Moodle TurnitIN:n käyttöohje opiskelijalle

Tehtäväsarja I Kertaa tarvittaessa materiaalin lukuja 1 3 ja 9. Tarvitset myös luvusta 4 määritelmän 4.1.

Ohjeita. Datan lukeminen

JAKSO 2 KANTA JA KOORDINAATIT

= 2 L L. f (x)dx. coshx dx = 1 L. sinhx nπ. sin. sin L + 2 L. a n. L 2 + n 2 cos. tehdään approksimoinnissa virhe, jota voidaan arvioida integraalin

Kompleksiluvut signaalin taajuusjakauman arvioinnissa

Luento 6: 3-D koordinaatit

Vektoreiden virittämä aliavaruus

MS-A0003/A0005 Matriisilaskenta Laskuharjoitus 2 / vko 45

Toinen harjoitustyö. ASCII-grafiikkaa 2017

Lineaarinen yhtälöryhmä

BM20A5840 Usean muuttujan funktiot ja sarjat Harjoitus 7, Kevät 2018

805324A (805679S) Aikasarja-analyysi Harjoitus 6 (2016)

Oletetaan ensin, että tangenttitaso on olemassa. Nyt pinnalla S on koordinaattiesitys ψ, jolle pätee että kaikilla x V U

Matematiikan tukikurssi

Tietokoneverkot. T Tietokoneverkot (4 op) viimeistä kertaa CSE-C2400 Tietokoneverkot (5 op) ensimmäistä kertaa

Ratkaisuehdotukset LH 7 / vko 47

Puzzle SM Pistelasku

MS-A0003/A0005 Matriisilaskenta Laskuharjoitus 1 / vko 44

Talousmatematiikan perusteet: Luento 13. Rajoittamaton optimointi Hessen matriisi Ominaisarvot ja vektorit Ääriarvon laadun tarkastelu

Yhtälöryhmä matriisimuodossa. MS-A0004/A0006 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.

TEHTÄVIEN PALAUTTAMINEN MOODLEEN

Säätötekniikan ja signaalinkäsittelyn työkurssi

Talousmatematiikan perusteet: Luento 11. Lineaarikuvaus Matriisin aste Käänteismatriisi

Yhtälöryhmä matriisimuodossa. MS-A0007 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.

Numeerinen analyysi Harjoitus 3 / Kevät 2017

MS-A0003/A0005 Matriisilaskenta Laskuharjoitus 2 / vko 45

MS-A0202 Differentiaali- ja integraalilaskenta 2 (SCI) Luento 1: Parametrisoidut käyrät ja kaarenpituus

Lineaarialgebra ja matriisilaskenta II Syksy 2009 Laskuharjoitus 1 ( ) Ratkaisuehdotuksia Vesa Ala-Mattila

mlvektori 1. Muista, että Jacobin matriisi koostuu vektori- tai skalaariarvoisen funktion F ensimmäisistä

Tässä dokumentissa on ensimmäisten harjoitusten malliratkaisut MATLABskripteinä. Voit kokeilla itse niiden ajamista ja toimintaa MATLABissa.

Zeon PDF Driver Trial

Peilaus pisteen ja suoran suhteen Pythonin Turtle moduulilla

Matriisilaskenta (TFM) MS-A0001 Hakula/Vuojamo Ratkaisut, Viikko 47, 2017

Käy vastaamassa kyselyyn kurssin pedanet-sivulla (TÄRKEÄ ensi vuotta ajatellen) Kurssin suorittaminen ja arviointi: vähintään 50 tehtävää tehtynä

3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä

Talousmatematiikan perusteet: Luento 14. Rajoittamaton optimointi Hessen matriisi Ominaisarvot Ääriarvon laadun tarkastelu

2.2 Gaussin eliminaatio. 2.2 Gaussin eliminaatio. 2.2 Gaussin eliminaatio. 2.2 Gaussin eliminaatio

VÄRISPEKTRIKUVIEN TEHOKAS SIIRTO TIETOVERKOISSA

Matriiseista. Emmi Koljonen

MS-A0107 Differentiaali- ja integraalilaskenta 1 (CHEM)

Talousmatematiikan perusteet: Luento 10. Lineaarikuvaus Matriisin aste Determinantti Käänteismatriisi

TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos. Harjoitustyö 4: Cache, osa 2

Esitysgrafiikka (20 pistettä)

Suvi Junes/Pauliina Munter Tietohallinto/Opetusteknologiapalvelut 2014

Vapaus. Määritelmä. jos c 1 v 1 + c 2 v c k v k = 0 joillakin c 1,..., c k R, niin c 1 = 0, c 2 = 0,..., c k = 0.

TTS kannattavuuslaskentaohjelma

S11-04 Kompaktikamerat stereokamerajärjestelmässä. Projektisuunnitelma

T harjoitustyö, kevät 2012

MATP153 Approbatur 1B Harjoitus 3, ratkaisut Maanantai

Jatkuvat satunnaismuuttujat

Kanta ja Kannan-vaihto

Pauliina Munter / Suvi Junes Tampereen yliopisto/tietohallinto 2013

Numeeriset menetelmät TIEA381. Luento 6. Kirsi Valjus. Jyväskylän yliopisto. Luento 6 () Numeeriset menetelmät / 33

NXT Infrapuna-sensori

HITSATUT PROFIILIT EN KÄSIKIRJA (v.2010)

HY / Avoin yliopisto Lineaarialgebra ja matriisilaskenta II, kesä 2015 Harjoitus 1 Ratkaisut palautettava viimeistään maanantaina klo

MS-C1340 Lineaarialgebra ja

Demo 1: Simplex-menetelmä

2 Konekieli, aliohjelmat, keskeytykset

6.6. Tasoitus ja terävöinti

8 KANNAT JA ORTOGONAALISUUS. 8.1 Lineaarinen riippumattomuus. Vaasan yliopiston julkaisuja 151

Jypelin käyttöohjeet» Ruutukentän luominen

Kompassi Suoritusten tarkistaminen ja tulosten julkaisu

MS-A0207 Differentiaali- ja integraalilaskenta 2 (Chem) Yhteenveto, osa I

Laskuharjoitus 2 ( ): Tehtävien vastauksia

GeoGebra-harjoituksia malu-opettajille

1 WKB-approksimaatio. Yleisiä ohjeita. S Harjoitus

Jypelin käyttöohjeet» Ruutukentän luominen

, on säännöllinen 2-ulotteinen pinta. Määrää T x0 pisteessä x 0 = (0, 1, 1).

5. Jos x < 1 2,niin x x 1 on aina. , 1] b) pienempi kuin Yhtälön 3 3 x +3 x =4ratkaisujenlukumääräon a) 0 b) 1 c) 2 d) enemmän kuin 2.

Mat. tukikurssi 27.3.

Ensimmäisen asteen polynomifunktio

Inversio-ongelmien laskennallinen peruskurssi Luento 4

Johdatus L A TEXiin. 7. Taulukot ja kuvat. Dept. of Mathematical Sciences

Tentti erilaiset kysymystyypit

Kiipulan ammattiopisto. Liiketalous ja tietojenkäsittely. Erja Saarinen

Johdatus L A TEXiin. 7. Taulukot ja kuvat. Dept. of Mathematical Sciences

S Laskennallinen Neurotiede

4 / 2013 TI-NSPIRE CAS TEKNOLOGIA LUKIOSSA. T3-kouluttajat: Olli Karkkulainen ja Markku Parkkonen

Johdatus L A TEXiin. 8. Taulukot ja kuvat. Matemaattisten tieteiden laitos

Ohjelmoinnin jatkokurssi, kurssikoe

Transkriptio:

T-75.4100 Digitaalinen kuvatekniikka Kevät 2015 Harjoitus 1: Kameran kuvanprosessointi Palautus: 1.3.2015 1

1 Tavoite Työssä tutkitaan kolmea kameran kuvanprosessointiketjun vaihetta: tarkennusta, mosaiikkikuvan muuntamista RGB-muotoon (demosaicing) ja valkotasapainon säätöä. Harjoitustyö liittyy luennoilla Kameran automatiikka (2.2.2015) ja Kameran kuvanprosessointi (9.2.2015) käsiteltyihin asioihin. Lisätietoa löytyy kurssikirjasta [1] sekä Ramanath et al. n artikkelista Color image processing pipeline [3]. 2 Aineisto Harjoitustyöhön liittyvä tiedostopaketti (T-75_4100_H1_tiedostot.zip) löytyy kurssin Harjoitustyötsivulta. Paketin sisältö on listattu taulukkoon 1. Tiedosto focus_01.jpg... focus_09.jpg open_raw_image.m process_linear_rgb_image_to_srgb.m sampleimage.dng separate_bayer_color_channels.m Sisältö Tehtävässä 1 käytettävät harmaasävykuvat (9 kpl) Matlab-skripti, joka lukee raw-kuvan muuttujaksi ja linearisoi sen; kuvan ohjella syntyy metadatamuuttuja meta_info Matlab-skripti, joka muuntaa linearisoidun RGB-kuvan srgb-väriavaruuteen katselua varten Digital Negative (DNG) -muotoinen raw-kuva, jota käytetään tehtävissä 2 ja 3 Matlab-skripti, joka erottelee mosaiikkikuvan värikanavat Taulukko 1: Harjoitustyöpaketin sisältö. Harjoitustyössä käytetään Matlab-ohjelmaa, joka löytyy lähes kaikista koulun tietokoneista ja jonka voi ladata kotikoneelle osoitteesta https://download.aalto.fi/. Kurssin Muu materiaali -sivulta (https: //noppa.aalto.fi/noppa/kurssi/t-75.4100/materiaali) löytyy lyhyt Matlab-ohje, joka on tehty Kuvatekniikan perusteet -kurssin tarpeisiin, mutta josta voi olla hyötyä tälläkin kurssilla. Matlabin oma Help-toiminto on myös hyödyllinen työkalu. 3 Harjoitustyön pisteytys Työstä saa enintään 25 pistettä; hyväksytyn työn minimipistemäärä on 13 pistettä. Työssä on kolme tehtävää, joista jokainen sisältää useamman toteutettavan menetelmän. Menetelmät on pisteytetty vaikeusasteen ja/tai työmäärän mukaan. Tehtävässä 6.2 voi saada lisäpisteitä toteuttamalla kaikki menetelmät. Kokonaisuudessaan raportista voi kuitenkin saada enintään 25 pistettä. Lisäksi jokaisesta tehtävästä on saatava yli 0 pistettä. Yhden harjoitustyön osuus kurssin kokonaisarvosanasta on 25 %, jolloin kurssin kaksi harjoitustyötä muodostavat yhdessä puolet kurssin arvosanasta. 4 Raportin palautus Harjoitustyöstä palautetaan raportti PDF-muodossa Moodleen kurssin työtilaan (https://moodle.aalto. fi/course/view.php?id=2660) viimeistään sunnuntaina 1.3. kello 23:59. Myöhäisiä palautuksia otetaan vastaan keskiviikkoon 4.3. kello 12:00 asti, mutta myöhässä palautetusta raportista voi saada korkeintaan 50 % maksimipisteistä eikä korjausmahdollisuutta ole. Sivu 1 / 7

Pisteet julkistetaan maanantaina 9.3. Jos työssä on korjattavaa, korjattu raportti tulee palauttaa Moodleen viimeistään torstaina 12.3. klo 23:59. Hyväksytysti korjatusta työstä saa 50 % maksimipisteistä. 5 Raportin rakenne ja tyyli Raportissa kerrotaan mitä on tehty, mitä on saatu tulokseksi ja selitetään tarvittaessa taustalla olevaa teoriaa (erityisesti pyritään vastaamaan alempana tehtävänannossa esitettyihin kysymyksiin). Raportin tulee olla johdonmukainen, ymmärrettävä kokonaisuus. Selostuksiin liitetään kuvat ja kuvaajat (kaikista, jotka pyydetään piirtämään tai esittämään), mieluiten kohtaan, jossa ne on saatu aikaan. Kuvaajat numeroidaan ja niihin viitataan tekstissä. Joissain tapauksissa voi olla havainnollisempaa esittää kuvasta valittu yksityiskohta kuin koko kuva. Tuotettu Matlab-koodi kirjoitetaan selkeästi kommentoituna siihen kohtaan, jossa koodia on käytetty. Useaan kertaan toistuvia komentoja ei tarvitse esittää moneen kertaan, mutta joka kohdassa tulee kuitenkin mainita, mitä on tehty. Pyri noudattamaan harjoitustyöpohjan ulkoasua ja harjoitustöiden yleisohjetta. Molemmat löytyvät kurssin Muu materiaali -sivulta. Voit kirjoittaa raportin suomeksi, ruotsiksi tai englanniksi. Kurssisivujen Muu materiaali -sivulta löytyy muotopohja raportille sekä L A TEX- että Word-formaatissa. Kiinnitä huomiota siihen, että palauttamasi PDF-tiedosto on kohtuullisen kokoinen (< 10 MB). Pakkaa kuvat tarvittaessa. 6 Tehtävät Harjoitustyön ensimmäisessä tehtävässä (kohta 6.1) käsitellään kameran tarkennusta, toisessa (kohta 6.2) mosaiikkikuvan muuntamista RGB-muotoon ja kolmannessa (kohta 6.3) valkotasapainon säätöä. Tehtävät on esitetty osana kameran kuvanprosessointiketjua kuvassa 1. Ensimmäisessä tehtävässä käytetään materiaalina kuvia focus_01.jpg... focus_09.jpg, ja toisessa ja kolmannessa DNG-kuvaa sampleimage.dng. 6.1 Tehtävä 1: Tarkennus (8 p) Työn ensimmäisessä tehtävässä simuloidaan kameran tarkennusprosessia. Tehtävänä on toteuttaa Matlabskripti, joka löytää yhdeksän kuvan setistä (focus_01.jpg... focus_09.jpg) sen kuvan, joka on tarkin annetun tarkennuspisteen suhteen. Tarkennuspisteitä on neljä; ne on listattu alla taulukossa 2. Pisteiden koordinaatit on annettu Matlabmuodossa, jossa rivien (y) indeksit kasvavat ylhäältä alas ja sarakkeiden (x) vasemmalta oikealle. Tehtävässä toteutetaan kolme menetelmää, jotka on listattu pisteineen alla taulukossa 3. Taulukossa on mainittu myös kurssikirjan [1] menetelmää käsittelevät sivunumerot. Kaikkien näiden tarkennusmenetelmien lähtökohtana on, että tarkimmassa kuvassa on eniten korkeataajuuksisia muutoksia. Tämä näkyy kuvassa nopeana harmaasävyarvojen vaihteluna, eli terävinä reunoina. Sivu 2 / 7

Kuva 1: Harjoitustyön tehtävät 1 3 osana kameran kuvanprosessointiketjua [1]. # Kuvaus x y 1 Etualalla olevan henkilön paita 800 1100 2 Lehden Suomen Kuvalehti -teksti 2030 1310 3 Taka-alalla olevan henkilön parta 2220 590 4 Takaseinän kaakelit 1357 500 Taulukko 2: Tarkennuspisteet. Menetelmä Pisteet Sivunumerot [1] Varianssi 2 69 70 Kuvagradientin energia 3 70 71 Laplace-operaattorin energia 3 71 72 Taulukko 3: Toteutettavat tarkennusmenetelmät. Kaikki kolme menetelmää voidaan siis toteuttaa ns. spatiaalitasossa ilman kuvan muuntamista taajuustasoon esimerkiksi Fourier-muunnoksen avulla. Varianssimenetelmä perustuu oletukseen, että kuvajoukossa, jonka kuvat eroavat toisistaan vain tarkennuksen osalta, terävimmässä kuvissa on suurin varianssi. Matlabissa vektorin varianssi lasketaan komennolla var. Huomioi, että jos käytät tätä komentoa, joudut ensin muuttamaan kuvan matriisimuodosta vektorimuotoon ja lisäksi double precision -muotoon (komennolla im2double). Voit myös halutessasi kokeilla Matlabin edge-reunantunnistusfunktiota ja verrata tuloksia. Kuvagradientin energiaan perustuvassa menetelmässä kuvan terävyyttä arvioidaan sen ensimmäisen asteen derivaatan avulla. Kuvan osittaisderivaattoja voi approksimoida konvoluutiolla (Matlabissa funktio conv2), jossa 3x3-konvoluutiomatriisi liu utetaan kuvan yli. Osittaisderivaattojen G x ja G y konvoluutiomatriisit F x ja F y ovat: Sivu 3 / 7

1 2 1 F x = 0 0 0 (1) 1 2 1 1 0 1 F y = 2 0 2 (2) 1 0 1 Osittaisderivaattojen laskemisen jälkeen gradientin energiaa voidaan approksimoida laskemalla yhteen osittaisderivaattojen alkioittaiset neliöt. Laplace-operaattorin energiaan perustuva menetelmä muistuttaa kuvagradientin energiaan perustuvaa menetelmää, mutta siinä käytetään ensimmäisen asteen derivaatan sijaan Laplace-operaattoria 2, eli toisen asteen derivaattaa. Kuten edellä, sitäkin voi approksimoida konvoluutiolla käyttämällä seuraavaa konvoluutiomatriisia: 0 1 0 F 2 = 1 4 1 (3) 0 1 0 Laplace-operaattorin 2 energiaa approksimoidaan vastaavasti sen alkioittaisella neliöllä. Jokaisen toteuttamasi menetelmän kohdalla raportoi jokaiselle tarkennuspisteelle kuva, jonka kirjoittamasi skripti valitsi tarkimmaksi. Arvioi silmämääräisesti, valitsiko skripti oikean kuvan. Arvioinnissa voi olla hyödyllistä piirtää kuvaaja, jossa vaaka-akselilla ovat kuvat 1 9 ja pystyakselilla valitsemasi tarkkuusmitan arvot kuullekin kuvalle. Määritä itse sopivan kokoinen tarkennusalue tarkennuspisteen ympärille. Kerro raportissa, miten alueen koon muuttaminen vaikutti menetelmän toimivuuteen. 6.2 Tehtävä 2: Demosaicing (9 p + mahdolliset lisäpisteet) Toisessa tehtävässä muunnetaan DNG-muotoinen raw-kuva (sampleimage.dng) lineaarisesta mosaiikkimuodosta RGB-muotoon, jossa jokaisen pikselin puuttuvat väriarvot on interpoloitu viereisten pikselien arvoista. Vaihtoehtoisia toteutettavia menetelmiä on kolme; ne on listattu alla pisteineen taulukossa 4. Menetelmistä kaksi ensimmäistä, bilineaarinen menetelmä ja väritasomenetelmä, ovat niin sanottuja spatiaalitason menetelmiä, joissa hyödynnetään vierekkäisten pikselien tilastollista samankaltaisuutta. Kolmas menetelmä, joka perustuu Fourier-muunnokseen, on puolestaan taajuustason menetelmä. Tällaiset menetelmät hyödyntävät oletuksia luonnollisten kuvien taajuusjakaumasta sekä ihmisen näköjärjestelmän herkkyydestä korkeille taajuuksille. Tehtävästä voi saada täydet pisteet (9 p) toteuttamalla pelkästään kaksi ensimmäistä menetelmää. Kolmas menetelmä on haastavampi, ja tehtävän voi suorittaa myös tekemällä pelkästään sen. Voit myös halutessasi kerätä lisäpisteitä (yhteensä 25 pisteeseen asti) toteuttamalla kaikki kolme menetelmää. Menetelmä Pisteet Sivunumerot [1] Bilineaarinen menetelmä 4 149 150 Väritasomenetelmä 5 154 155 Fourier-muunnokseen perustuva menetelmä 9 166 171; lisäksi [2] Taulukko 4: Toteutettavat / vaihtoehtoiset demosaicing-menetelmät. Sivu 4 / 7

Kuva luetaan ensin Matlab-muuttujaksi tehtäväpaketista löytyvällä skriptillä open_raw_image.m. Tämän jälkeen muuttujassa on lineaarinen mosaiikkikuva, jossa vierekkäiset pikselit sisältävät eri värikanavien (R, G tai B) informaatiota. Kuvan Bayer-kuvio on RGGB-tyyppinen, jossa parittomilla riveillä vuorottelevat vasemmalta lukien pikselit R ja G, ja parillisilla riveillä pikselit G ja B. RGGB-kuvio on esitetty alla kuvassa 2. Kuva 2: RGGB-tyyppinen Bayer-kuvio. Molemmissa spatiaalisissa interpolaatiomenetelmissä voidaan hyödyntää konvoluutiota (ks. tehtävä 1). Konvoluutiomatriisi liu utetaan mosaiikkikuvan yli ja saadaan siten interpoloitua pikseleille niiden puuttuvat väriarvot. Koska mosaiikkikuvassa on kaksi kertaa niin paljon vihreitä pikseleitä kuin punaisia tai sinisiä pikseleitä, käytetään puuttuvien vihreiden väriarvojen interpolointiin eri konvoluutiomatriisia kuin punaisille ja sinisille pikseleille. Vihreän kanavan konvoluutiomatriisi F g ja punaisen sekä sinisen kanavan konvoluutiomatriisi F rb on esitetty alla yhtälöissä 4 ja 5. F g = 1 0 1 0 1 4 1 (4) 4 0 1 0 F rb = 1 1 2 1 2 4 2 (5) 4 1 2 1 Jokainen väri käsitellään erikseen siten, että konvoluutiomatriisi liu utetaan yli matriisin, jossa on pelkästään interpoloitavan värin arvoja ja muut arvot ovat nollia. Mosaiikkikuvasta saa tuotettua kuvan, jossa Bayer-matriisin alkuperäiset väriarvot on eroteltu omille dimensioilleen, tehtäväpaketista löytyvällä skriptillä separate_bayer_color_channels.m. Jos mosaiikkikuvan koko on m n, skriptin tuottaman kuvan koko on m n 3, jossa punaiset väriarvot ovat dimensiolla 1, vihreät dimensiolla 2 ja siniset dimensiolla 3. Puuttuvien väriarvojen kohdalla on nollaa. Erotellun matriisin dimensiot voidaan konvoloida erikseen sopivilla konvoluutiomatriiseilla. Konvoluutio tuottaa oletusasetuksilla matriisin, jossa on ylimääräisiä lukuarvoja reunoilla. Tuotetusta matriisista tuleekin poistaa ensimmäinen ja viimeinen rivi ja ensimmäinen ja viimeinen sarake, jotta matriisissa on sama määrä pikseleitä kuin alkuperäisessä kuvassa. Bilineaarisessa interpoloinnissa värikanavat konvoloidaan matriiseilla F g ja F rb. Reunantunnistukseen perustuvassa menetelmässä puuttuvat punaiset ja siniset väriarvot saadaan vastaavasti konvoluutiolla, mutta vihreän kanavan arvot interpoloidaan joko vaaka- tai pystysuunnassa sen mukaan, kummassa suunnassa viereisten pikselien ero on pienempi. Jos tarkoituksena on interpoloida vihreät väriarvot Sivu 5 / 7

kuvan 3 mukaisesti pikseliin A5, joka on joko punainen tai sininen, interpolaatio tapahtuu vaakasuunnassa, jos H 5 < V 5, ja pystysuunnassa, jos V 5 < H 5, missä H 5 = A3 + 2 A5 A7 + G4 G6 (6) V 5 = A1 + 2 A5 A9 + G2 G8. (7) Väritasomenetelmä eteen seuraavasti: Kuva 3: Pikselin A5 naapurusto [1]. 1. Interpoloidaan vihreät väriarvot punaisiin ja sinisiin pikseleihin em. tavalla. 2. Interpoloidaan punaiset ja siniset väriarvot vihreisiin pikseleihin kahdesta lähimmästä väriarvosta joko vaaka- tai pystysuunnassa, riippuen siitä, missä suunnassa lähimmät arvot ovat. 3. Interpoloidaan punaiset väriarvot sinisiin pikseleihin ja toisinpäin käyttäen neljää lähintä naapuria kuten bilineaarisessa interpoloinnissa. Matriisin reunoilla interpolointiin voi käyttää lähimmän kolmen (kulmissa kahden) pikselin keskiarvoa. Fourier-muunnokseen perustuvat menetelmät on selostettu yleisesti kurssikirjan [1] sivuilla 166 171. Tehtävässä toteutettava menetelmä on selostettu tarkemmin artikkelissa [2]. Säädä lopuksi jokaisella menetelmällä tuottamasi RGB-kuvan valkotasapaino (tehtävä 3) ja prosessoi sen jälkeen kuvat srgb-muotoon ( Color Matrixing -vaihe kuvassa 1). srgb-muunnos tapahtuu skriptillä process_linear_rgb_image_to_srgb.m. Vertaile demosaicing-menetelmiä silmämääräisesti. Riittää, että käytät vertailussa vain yhtä valkotasapainomenetelmää. HUOM! srgb-muunnoksessa käytetään kahta muunnosmatriisia: CAM XYZ ja XYZ RGB. Näistä ensimmäinen muuttaa kameran väriarvot XYZ-yhdysavaruuteen ja jälkimmäinen XYZ-arvot edelleen RGBavaruuteen. CAM XYZ-matriisin arvot (9 kpl) löytyvät vektorimuodossa metadatamuuttujan meta_info kentästä ColorMatrix2. Skripti process_linear_rgb_image_to_srgb.m olettaa, että kyseessä on pystyvektori, joka skriptin rivillä 9 muutetaan 3x3-matriisimuotoon transponoimalla. On kuitenkin havaittu, että jotkut Matlabin versiot tallentavat vektorin vaakasuunnassa, jolloin skripti ei toimi oikein. Jos skripti tuottaa virheilmoituksen, poista transponoinnit riviltä 9. 6.3 Tehtävä 3: Valkotasapaino (8 p) Kolmannessa tehtävässä säädetään toisessa tehtävässä tuotetun kuvan valkotasapaino. Toteutettavia menetelmiä on kolme, joista ensimmäinen perustuu raw-kuvan metadataan (Matlab-muuttuja meta_info), Sivu 6 / 7

toinen on ns. Gray world -menetelmä ja kolmas Maximum RGB -menetelmä. Menetelmät on listattu pisteineen alla taulukossa 5. Menetelmä Pisteet Sivunumerot [1] Metadata 2 - Gray world 3 95 96 Maximum RGB 3 96 Taulukko 5: Toteutettavat valkotasapainomenetelmät. Metadataan perustuvassa menetelmässä luetaan kameran määrittelemä R-, G- ja B-värikanavien valkopiste muuttujan meta_info kentästä AsShotNeutral. Tämän jälkeen lasketaan valkopisteen arvojen käänteisluvut, jotta niitä voidaan käyttää kertoimina kuvan väriarvoille. Lisäksi kertoimet skaalataan siten, että vihreän kanavan kerroin on 1. Kun tämä on tehty, tehtävässä 2 tuotetun kuvan jokaisen värikanavan arvot kerrotaan vastaavan värikanavan kertoimella. Gray world- ja Maximum RGB -menetelmät on esitelty kirjassa sekä luennon 9.2.2015 kalvoissa 23 25. Prosessoi lopuksi kaikilla kolmella menetelmällä tuotetut kuvat srgb-muotoon yllä mainitulla tavalla ja vertaile valkotasapainomenetelmiä silmämääräisesti. Riittää, että käytät vertailussa yhtä valitsemaasi demosaicing-menetelmää (kohta 6.2). Viitteet [1] Sebastiano Battiato, Arcangelo Ranieri Bruna, Giuseppe Messina, and Giovanni Puglisi. Image Processing for Embedded Devices. Bentham Science Publishers, 2010. [2] J. W. Glotzbach, R. W. Schafer, and K. lllgner. A method of color filter array interpolation with alias cancellation properties. In IEEE International Conference on Image Processing (ICIP-2001), pages 141 144, 2001. [3] R. Ramanath, W.E. Snyder, Y. Yoo, and M.S. Drew. Color image processing pipeline. Signal Processing Magazine, IEEE, 22(1):34 43, 2005. Sivu 7 / 7