TEKNILLINEN KORKEAKOULU 26.4.2004 Tietoliikenneohjelmistojen ja multimedian laboratorio T-111.500 Tietokonegrafiikan seminaari Kevät 2004: Kuvapohjaiset menetelmät Kuva-analogiat Juha Uotila 50468E
Kuva-analogiat Juha Uotila TKK juha.uotila@hut.fi Tiivistelmä Kuva-analogiat on menetelmä, jossa muokataan annettua kohdekuvaa annetun esimerkkikuvaparin tapaan. Menetelmä perustuu siihen, että jokaiselle kohdekuvan pikselille etsitään ympäristöltään lähinnä vastaava pikseli esimerkkikuvasta ja kirjataan tätä vastaava muokatun esimerkkikuvan pikseli muokatun kohdekuvan vastaavaksi pikseliksi. Kuva-analogiat-menetelmä pohjautuu useisiin aikaisempiin menetelmiin. Lähinnä vastaavan pikselin haussa se käyttää sekä L 2 -normin mukaista hakua että koherenssihakua. Menetelmällä on useita eri sovellusalueita. Useilla sovellusalueilla se tuottaa aikaisempia menetelmiä parempia tuloksia, mutta sen heikkoutena on suhteellinen hitaus. 1 JOHDANTO Kuva-analogiat (image analogies) on tekniikka, jossa kuvia käsitellään esimerkkien avulla. Kuva-analogiat-tekniikan perusideana on toteuttaa oppiva suodatin, joka pystyy muokkaamaan kohdekuvaa annettujen esimerkkikuvien mukaisesti. Toisin sanoen jos annettuina ovat esimerkkikuvapari A ja tästä halutulla tavalla muokattu A sekä kohdekuva B, jota halutaan muokata, on tarkoituksena tuottaa tuloskuva B siten että A : A :: B : B. Kuvassa 1 on esitetty esimerkki kuva-analogiat-tekniikan toiminnasta. Algoritmi saa syöttötietoinaan esimerkkiparin A ja A sekä kohdekuvan B, joiden perusteella luodaan tuloskuva B. 1
Kuva 1. Esimerkki kuva-analogiat-menetelmästä. A, A ja B ovat algoritmin syötteitä ja B algoritmin tuottama kuva. (Hertzmann et al., 2001) Kuva-analogiat-tekniikan tuottamien muunnosten hyödyllisyyteen on useita syitä. Ensinnäkin algoritmia voidaan käyttää lukemattomiin eri tarkoituksiin, kuten kuvan 1 kaltaisiin suodattimiin, tekstuurisynteesiin, tekstuurin siirtoon ja superresoluutioon. Eri sovellusalueita käsitellään tarkemmin luvussa 4. Toiseksi tällainen muunnos on hyvin intuitiivinen, ja sille on näin ollen helppo löytää uusia sovelluskohteita. Tämä paperi perustuu pääosin Hertzmannin et al. vuoden 2001 ACM SIGGRAPH -konferenssissa julkaistuun paperiin Image analogies. Kappaleessa 2 käsitellään kuvaanalogiat-menetelmän taustaa. Kappaleessa keskustellaan kuva-analogioihin vaikuttaneista aikaisemmista tekniikoista ja käsitellään kuva-analogioiden oleelliset erot niihin. Kappale 3 keskittyy itse kuva-analogiat-menetelmään. Aluksi luodaan yleiskatsaus menetelmän teknisestä toteutuksesta. Kappaleessa 3.1 syvennytään menetelmän tietorakenteisiin ja algoritmeihin, ja kappaleessa 3.2 keskustellaan menetelmän käytännön soveltamiseen liittyvistä kysymyksistä. Kappaleessa 4 esitetään menetelmän avulla aikaansaatuja tuloksia ja sovellusalueita sekä eritellään menetelmään liittyviä ongelmia. Lopuksi kappaleessa 5 esitetään yhteenveto kuva-analogiat-menetelmästä. 2
2 TAUSTA Kuva-analogiat-tekniikan pohjana on useita aikaisemmin kehitettyjä menetelmiä useilta eri aloilta. Näitä ovat esimerkiksi koneoppiminen, tekstuurisynteesi ja ei-fotorealistinen renderöinti. Seuraavassa tarkastellaan lyhyesti näitä sovellusalueita ja niihin aiemmin kehitettyjä menetelmiä sekä kuva-analogiat-tekniikan olennaisia eroja näihin menetelmiin. Useat sovellukset ovat pyrkineet käyttämään koneoppimista tietokonegrafiikan ongelmien ratkaisuun. Esimerkkinä tästä on Freemanin et al. (2000) tutkimus, jossa käytetään Markovin satunnaiskenttiä (Markov random fields) ja opetusesimerkkejä arvioitaessa kuvan perusteella alla olevaa näkymää. Tämän perusteella voidaan luoda esimerkiksi superresoluutiota eli tarkemman resoluution kuvaa heikomman resoluution kuvasta. Kuva-analogioiden perusajatus on samankaltainen, mutta aikaisemmista sovelluksista poiketen se ei käytä iteratiivista algoritmia. Kuva-analogiat tarjoaa myös aikaisempia sovelluksia laajemman sovelluskentän. Tekstuurisynteesi, eli annetun näytteen mukaisen tekstuurin luominen, on myös saanut viime aikoina paljon huomiota osakseen. Alan kehittyneimpiä menetelmiä on Wein ja Levoyn (2000) menetelmä, jossa käytetään puurakenteista vektorikvantisointia (treestructured vector quantization) nopeuttamaan algoritmia, joka perustuu pikselien naapurustojen tutkimiseen useilla eri resoluutiotasoilla. Ashikhminin (2001) tästä menetelmästä edelleen kehitetty menetelmä pyrkii laajentamaan olemassa olevia tekstuurikuvioita mahdollisuuksien mukaan suoraan alkuperäisestä. Kuva-analogiat käyttää näiden kahden menetelmän hakutekniikoita, vertaa niiden tuloksia ja valitsee tilanteen mukaan pikseli pikseliltä sopivamman. Lisäksi kuva-analogiat käyttää kuvaparia yksittäisen lähdekuvan sijaan, mikä avaa aivan uusia sovelluskohteita. Ei-fotorealistinen renderöinti (non-photorealistic rendering) on alue, jossa syntetisoidaan taiteellisia tyylejä esimerkkien mukaan. Alueella on kehitetty useita menetelmiä taiteellisten tyylien toteuttamiseksi tietokoneella, mutta nämä menetelmät on pääosin sovitettava aina tietylle tyylille tai tyyleille. Sen sijaan kuva-analogiat pystyy esimerkin avulla luomaan helposti useita erilaisia tyylejä. Tätä voidaankin kutsua esimerkkipohjaiseksi renderöinniksi (example-based rendering). 3 KUVA-ANALOGIAT-MENETELMÄ Yleistasolla kuva-analogiat-menetelmän perusajatus on seuraava: kun on annettu esimerkkikuvat A ja A, jossa A on muokattu versio A:sta, sekä kohdekuva B, muokataan B:stä tuloskuva B siten, että A : A :: B : B eli B on muunnettu B:stä samalla tavoin kuin A on A:sta. Tämä toteutetaan etsimällä jokaiselle kuvan B pikselille q lähinnä vastaava pikseli p kuvasta A, ja asettamalla tämän jälkeen kuvan B pikseliksi q kuvan A pikseli p, joka siis on esimerkkiparin lähinnä vastaavasta pikselistä muokattu pikseli. 3
Algoritmissa käsiteltävät kuvat muokataan Gaussin pyramideiksi, joissa jokainen taso N-1 on tasosta N luotu karkeamman resoluution versio, jossa pikselien määrä sekä korkeus- että leveyssuunnassa on puolitettu. Edellä kuvattu käsittely suoritetaan kaikille tasoille karkeimmasta alkaen. Algoritmin keskeinen osuus on lähinnä vastaavan pikselin etsiminen. Tässä käytetään sekä ominaisuusvektorien vertailua että koherenssivertailua. Näiden kahden välinen painotus riippuu sovelluskohteesta. Kappaleessa 3.1 käsitellään algoritmin toiminta tarkemmin, ja kappaleessa 3.2 keskustellaan menetelmän käytännön soveltamisesta. 3.1 Tietorakenteet ja algoritmi Algoritmi ottaa syötteenään kolme kuvaa: muokkaamattoman lähdekuvan A, muokatun lähdekuvan A ja muokkaamattoman kohdekuvan B. Näiden pohjalta se antaa tulosteena muokatun kohdekuvan B. Oletuksena on, että kuvaparissa vastaavat pikselit ovat vastaavilla kohdilla, eli kuvan A pikseliä p vastaa kuvan A muokattu pikseli p. Vastaavasti kuvan B pikseliä q tulee vastaamaan muokatun kuvan B pikseli q. Kuvapikseleillä oletetaan olevan useita eri ominaisuuksia, kuten väri-informaatio ja valovoimakkuus. Yhdessä kaikki nämä ominaisuuden muodostavat pikselin ominaisuusvektorin. Näitä ominaisuusvektoreita merkitään tässä A(p), A (p), B(q) ja B (q). Lisäksi asetetaan funktio s ilmaisemaan jokaisen kohdeparin pistettä q vastaava lähdeparin piste p siten että s(q) = p. Kaikista näistä on useita eri versioita, yksi jokaiselle Gaussin pyramidin resoluutiotasolle. Merkitään L:llä korkeinta resoluutiotasoa, jolloin esimerkiksi A L kuvaa A(p)-ominaisuusvektoria korkeimmalla tasolla L ja A L-1 vastaavaa vektoria yhtä karkeammalla resoluutiotasolla L-1. On huomattava, että ominaisuusvektorien A(p) ja B(q) ominaisuuksien tulee olla samoja, samoin ominaisuusvektorien A (p) ja B (q), mutta A(p) ja A (p) ja siis myös B(q) ja B (q) voivat erota ominaisuusvektoriensa suhteen toisistaan. Itse algoritmissa rakennetaan aluksi ominaisuusvektorit A(p), A (p) ja B(q) kaikille Gaussin pyramidin tasoille l. Tämän jälkeen luodaan tuloskuvan ominaisuusvektori B (q), ja näin myös tuloskuva, karkeimmalta tasolta alkaen. Kohdekuvaparin jokaista pikseliä q verrataan lähdekuvaparin jokaiseen pikseliin p ja etsitään lähinnä vastaava pikseli. Lähinnä vastaavan pikselin etsinnässä käytetään apuna parhaillaan käsiteltävän Gaussin pyramidin tason l lisäksi karkeampaa tasoa l-1 jäljempänä esitettävällä tavalla. Kun lähinnä vastaava pikseli p on löytynyt, asetetaan tutkittavalla tasolla l B l (q) = A l (p) ja s l (q) = p. Pseudokoodina algoritmi voidaan esittää seuraavasti: funktio LuoKuvaAnalogia(A, A, B) Laske Gaussin pyramidit A:lle, A :lle ja B:lle Laske ominaisuusvektorit A:lle, A :lle ja B:lle (Alusta hakurakenteet) jokaiselle tasolle l karkeimmasta hienoimpaan tee jokaiselle pikselille q B l piirtoviivajärjestyksessä tee p = BestMatch(A, A, B, B, s, l, q) B l (q) = A l (p) s l (q) = p return B L 4
Varsinaisen työn tekee koodin BestMatch-alirutiini. Tämä alirutiini etsii ympäristöltään lähinnä vastaavan lähdekuvaparin A/A pikselin p jokaiselle kohdekuvaparin B/B pikselille q, jolloin pikseli A (p) voidaan asettaa tuloskuvan pikseliksi B (q). BestMatchalirutiini käyttää lähinnä vastaavan pikselin löytämiseksi kahta eri tekniikkaa: läheisyyshakua ja koherenssihakua. Läheisyyshaku (approximate search) pyrkii löytämään lähinnä vastaavan pikselin perustuen pikselien p ja q sekä niiden naapuripikselien ominaisuusvektorien vertailuun. Vertailua suoritetaan sekä tutkittavalla Gaussin pyramidin tasolla l että karkeammalla tasolla l-1. Karkeamman resoluutiotason käyttö vertailun apuna mahdollistaa suurempien kokonaisuuksien rekisteröitymisen ja siten paremman lopputuloksen pienemmällä tutkittavien pikseleiden määrällä, mikä nopeuttaa algoritmia merkittävästi (Wei ja Levoy, 2000). Läheisyyshaussa haetaan kullekin kohdekuvan pikselille q lähdekuvan pikseli p siten, että niiden naapurustojen yhdistettyjen ominaisuusvektorien etäisyyden L 2 -normi on mahdollisimman pieni. Käytännössä lähimmän pikselin haku tapahtuu käyttäen esimerkiksi puurakenteista vektorikvantisointia (TSVQ) tai ANN (approximate nearest neighbor) -menetelmää. Naapuripikseleiden vertailua on havainnollistettu kuvassa 2. Kuva 2. Naapuripikselien vertailu läheisyyshaussa. Pikseli, jolle etsitään lähintä vastaavuutta on pikseli q Gaussin pyramidin tasolla l. Ruudukolla merkittyjä pikseleitä tasoilla l ja l-1 käytetään naapurustona N määritettäessä lähinnä vastaava pikseli. Pikselin q naapuruston pikselien ominaisuusvektorit B:ssä ja B :ssa yhdistetään yhdeksi ominaisuusvektoriksi. Samoin tehdään kaikille pikseleille p kuvaparissa A / A. Läheisyyshaku palauttaa sen pikselin p, jonka naapuruston ominaisuusvektorin ja q:n naapuruston ominaisuusvektorin erotuksen L 2 -normi on pienin. Lähempänä keskustaa olevia pikseleitä painotetaan vertailussa kauempana olevia enemmän. (Hertzmann et al., 2001) 5
Koherenssihaku (coherence search) perustuu Ashikhminin luonnossa esiintyvien tekstuurien syntetisoinnissa käyttämään algoritmiin (Ashikhmin, 2001). Ashikhminin algoritmi hakee pikselin, joka on parhaiten koherentti jonkun jo syntetisoidun kohdekuvan osion kanssa. Koherenssihaku palauttaa pikselin s(r*) + (q - r*), missä r* = arg min F ( s( r) + ( q r)) F ( q) r N ( q) l l 2. (1) Tässä N(q) on jo käsiteltyjen q:n välittömästi viereisten pisteiden muodostama naapurusto ja F l (q) q:n naapuruston pikselien ominaisuusvektorit yhdistämällä saatu q:n naapuruston ominaisvektori. Kuva 3 selventää Ashikhminin algoritmin periaatetta. Kuva 3. Koherenssihaku. Kuvassa kohdekuvan B jo käsiteltyjen (harmaa) naapuripikselien r lähdepikselien s(r) ympäristöistä jo kopioituun pikseliin s(r) nähden vastaavalla paikalla oleva pikseli s(r) + (q-r) haetaan q:n kandidaattipikseliksi. Näistä kandidaattipikseleistä ympäristöltään parhaiten sopiva kopioidaan pikseliksi q. (Ashikhmin, 2001) Ashikhminin algoritmi suorittaa siis läheisyyshaun tapaan ympäristöjen ominaisuusvektorien erotusten L 2 -normien vertailun, mutta ainoastaan niille lähdekuvan A pikseleille, joiden naapuripikseli on jo aiemmin algoritmissa sijoitettu kohdekuvaan käsiteltävän pikselin vastaavalla kohdalla olevaksi naapuripikseliksi. Näitä ovat kuvassa 3 mustalla merkityt kolme lähdekuvan A pikseliä. Algoritmi johtaa usein alkuperäisen kuvan alueiden suoraan kopioitumiseen kohdekuvaan. Kuvassa 4 näkyy esimerkkinä Ashikhminin algoritmin kohdekuvaan kopioituvat alueet käytettäessä algoritmia tekstuurisynteesiin. 6
Kuva 4. Ashikhminin koherenssihakualgoritmin tuottamat alueet. Oikeanpuolimmaisessa kuvassa on valkoisella erotettu alueet, jotka ovat kopioituneet suoraan lähdekuvasta suoritettaessa tekstuurisynteesiä Ashikhminin algoritmilla. (Ashikhmin, 2001) Kun sekä läheisyyshaun että koherenssihaun tuottamat pikselit ovat tiedossa, Best- Match-alirutiini vertaa näiden pikselien ja niiden naapurustojen samankaltaisuutta alkuperäiseen pikseliin ja sen naapurustoon painottaen koherenssihaun tulosta halutulla kertoimella. Koherenssihaku ei yleensä palauta L 2 -normin mielessä yhtä hyvin sopivaa pikseliä kuin läheisyyshaku, mutta sen tuottama tulos näyttää usein paremmalta. Suurempi kerroin koherenssihaun painotuksessa vastaa suurempien koherenttien alueiden rekisteröitymistä. 3.2 Käytännön soveltaminen Käytännössä kuva-analogiat-algoritmin käyttö RGB-arvoilla ei usein tuota parasta tulosta. RGB-arvojen moniulotteisuuden takia yksi kuvapari ei usein tuota tarpeeksi tiheää näytettä syntetisointia varten. Hertzmann et al. (2001) ovatkin käyttäneet useissa kuvaanalogioiden sovelluksissa yksinomaan luminanssia ominaisuusvektorina, ja väriarvot on kopioitu tuloskuvaan B alkuperäisestä kuvasta B. Tämä tosin kadottaa suodattimen väririippuvuudet eikä siten sovi kaikkiin sovellusalueisiin. Taiteellisten tai blurfilttereiden sekä superresoluution toteuttamisessa pelkkien luminanssiarvojen käyttö sen sijaan usein riittää. Jos esimerkkikuva A ja kohdekuva B ovat valaistusarvoltaan erilaiset, esimerkiksi A pimeä ja B valoisa, tulee kuvien luminanssijakaumat yhteensovittaa. Tällä voidaan varmistaa riittävien yhtäläisyyksien löytyminen käytettäessä luminanssiarvoja ominaisuusvektoreina. Hertzmann et al. (2001) käyttävät yhteensovittamisessa lineaarista muunnosta, jossa kuvien luminanssijakaumien keskiarvot ja varianssit sovitetaan yhteen. 4 TULOKSIA JA ERITTELYÄ Seuraavassa esitellään sovellusalueita, joilla kuva-analogiat-algoritmia voidaan käyttää, sekä menetelmän näillä sovellusalueilla tuottamia tuloksia. Kuva-analogiat pystyy tuottamaan helposti yksinkertaisia perinteisiä suodattimia, kuten blur tai emboss (kuva 1). Nopeudessa kuva-analogiat kuitenkin häviää selvästi suoralle suodattimen käytölle. 7
Tekstuurisynteesi on kuva-analogioiden triviaali tapaus, jossa A:n ja B:n pikselien ominaisuusvektorit ovat vakioita koko kuva-alalla, ja A sisältää syntetisoitavan tekstuurin lähteen. Tekstuurisynteesissä kuva-analogiat-tekniikka yhdistää L 2 -normin käytön (Wei ja Levoy, 2000) ja Ashikhminin algoritmin (Ashikhmin, 2001). Menetelmän tuottamat tulokset ovat hieman Ashikhminin algoritmin tuottamia tuloksia parempia, joskin kuvaanalogioiden käyttö on huomattavasti hitaampaa. Kuva-analogiat-algoritmilla voidaan toteuttaa myös superresoluutio, eli tarkemman resoluution yksityiskohtien luominen heikomman resoluution kuvasta. Tällöin tarvitaan harjoittelukuvapariksi muokattavaa kuvaa vastaavia kuvia, ja algoritmia voidaan muokata käyttämään useampiakin harjoituskuvapareja. Tekstuurin siirrossa muokataan kuvaa B siten, että saatu tuloskuva B saadaan koostumaan samanlaisesta tekstuurista kuin esimerkkikuva A. Tekstuurin siirto toteutetaan käyttämällä harjoitteluparissa samaa tekstuurikuvaa sekä A:na että A :na. Perusmuodossa kuva-analogiat-algoritmi yhdistää vertailtavat ympäristöt B:ssä ja B :ssa ja toisaalta A:ssa ja A :ssa ja vertailee suoraan näitä yhdistettyjä ympäristöjä, kuten kuvasta 2 nähdään. Tekstuurin siirrossa voidaan algoritmiin myös lisätä parametri, jolla painotetaan lähinnä vastaavan pikselin etsinnässä parin (A, B) samankaltaisuutta suhteessa enemmän tai vähemmän kuin parin (A, B ) samankaltaisuutta. Painotuksen suuruudesta riippuu, kuinka voimakkaasti tekstuuri tulee esille suhteessa alkuperäiseen kuvaan (kuva 5). Kuva 5. Tekstuurin siirto. Tuloskuvassa B (1) on painotettu kuvaparin (A, B) samankaltaisuutta, kuvassa B (2) taas on painotettu suhteessa enemmän kuvaparin (A, B ) samankaltaisuutta. (Hertzmann et al., 2001) Taiteellisten suodattiminen toteutus onnistuu myös kuva-analogiat-algoritmilla. Koska kopioitaessa taiteellista tyyliä on usein saatavilla ainoastaan suodatettu esimerkkikuva A, on tästä muokattava alkuperäistä valokuvaa vastaava kuva A. Hertzmann et al. käyttivät esimerkiksi Adobe Photoshopin smart blur -suodatinta apuna luodessaan valokuvan kaltaisia esimerkkikuvia. Mikäli taiteellisella tyylillä maalatusta kohteesta on saatavilla valokuva, voidaan myös tätä käyttää. Kuitenkin koska algoritmi olettaa likimääräi- 8
sen pisteittäisen vastaavuuden, on taiteellinen kuva ja alkuperäinen kuva sovitettava yhteen kiertämällä, skaalaamalla ja venyttämällä tarpeen mukaan. Texture-by-numbers on sovellusalue, joka mahdollistaa tekstuureiltaan luokitellun esimerkkikuvan tekstuurien käyttämisen luomaan uusi kuva toisen luokittelukuvan perusteella (kuva 6). Menetelmä mahdollistaa järkevien kuvien luomisen silloin, kun esimerkkikuva on heterogeeninen. Kuva-analogiat-algoritmilla myös eri tekstuurityyppien väliset rajat siirtyvät esimerkin mukaisesti. A A B B Kuva 6. Texture-by-numbers. Värikoodaamalla eri tekstuurityypit voidaan helposti luoda kuva, jossa eri tekstuureita käytetään halutuissa osissa kuvaa. (Hertzmann et al., 2001) Kuva-analogiat-algoritmia voidaan käyttää myös harmaasävykuvien värittämiseen, mikäli käytettävissä on halutun värimaailman sisältävä esimerkkikuva (http://mrl.nyu.edu /projects/image-analogies/). Tällöin esimerkkikuva asetetaan A :ksi, tästä muunnettu harmaasävykuva A:ksi ja väritettävä harmaasävykuva B:ksi. Näin käytettynä algoritmi vastaa hyvin läheisesti Welshin et al. (2002) harmaasävykuvien väritykseen käyttämää algoritmia. Kuten edellä esitetystä huomataan, kuva-analogiat-menetelmä on hyvin yleiskäyttöinen ja soveltuu monenlaisten tekstuuriongelmien ratkaisuun. Menetelmässä on silti muutamia ongelmia, jotka rajoittavat sen käyttömahdollisuuksia. Vaikka algoritmia on mahdollista nopeuttaa käyttämällä edistyneempiä hakutekniikoita, on se silti varsin hidas. Hertzmannin et al. testeissä 1 GHz PC:llä algoritmiltä kului 9
kymmeniä sekunteja yksinkertaiseen tekstuurisynteesiin, muutamia minuutteja tekstuurinsiirtoon ja muutamia tunteja taiteellisiin suodattimiin. Toisena ongelmana algoritmissa on sen oletus pistekohtaisesta vastaavuudesta. Tällöin esimerkkiparin toisen kuvan tulee käytännössä olla jollakin tavoin toisesta muokattu, tai kuvia pitää ainakin muokata siten, että vastaavat pisteet rekisteröityvät samoihin paikkoihin. Esimerkiksi käsivaralta piirretty esimerkkikuva ei sellaisenaan kelpaa. 5 YHTEENVETO Kuva-analogiat soveltaa uudella tavalla useita aikaisempia tekstuuritekniikoita. Se käyttää parhaiten vastaavan pikselin etsinnässä sekä tavanomaista L 2 -normin vertailua Wein ja Levoyn (2000) tapaan että Ashikhminin (2001) koherenssihakua. Kuvaparin käyttö yksittäisen kohdekuvan asemesta lisää kuva-analogiat-menetelmän käyttömahdollisuuksia huomattavasti. Menetelmä on teknisesti melko yksinkertainen, mutta toimii tyydyttävästi monilla erilaisilla sovellusaluilla. Eräitä tällaisia sovellusalueita ovat perinteiset suodattimet, tekstuurisynteesi, superresoluutio, tekstuurin siirto, taiteelliset suodattimet, harmaasävykuvien värittäminen sekä luokiteltu tekstuurin siirto, texture-by-numbers. Tekniikan vahvuutena on sen intuitiivisuus, joten sille on helppo löytää uusia sovelluskohteita. Toisaalta tekniikka on melko hidas, ja useilla alueilla onkin nopeampia menetelmiä käytettävissä. LÄHDELUETTELO Ashikhmin, M. 2001. Synthesizing Natural Textures. 2001 ACM Symposium on Interactive 3D Graphics. pp 217 226. Freeman, W. T.; Pasztor, E. C.; Carmichael, O. T. 2000. Learning Low-Level Vision. International Journal of Computer Vision, 40(1). pp. 25 47. Hertzmann, A.; Jacobs, C. E.; Oliver, N; Curless, B; Salesin, D. H. 2001. Image analogies. Proceedings of ACM SIGGRAPH 2001. pp. 327 340. NYU Media Research Lab, Image Analogies project page. URL: http://mrl.nyu.edu/projects/image-analogies/ [viitattu 29.3.2004] Wei, L-Y; Levoy, M. 2000. Fast Texture Synthesis Using Tree-Structured Vector Quantization. Proceedings of ACM SIGGRAPH 2000. pp. 479 488. Welsh, T; Ashikhmin, M; Mueller, Klaus. 2002. Transferring Color to Greyscale Images. ACM Transactions on Graphics, 21(3). pp. 277-280. 10