Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: Muunnosmatriisien käyttäminen

Triton [21.01.2013 22:05:03]

#

Tervehdys,

Olenko käsittänyt oikein, että jos haluan skaalata, pyörittää tai tehdä mitä tahansa muita lineaaritransformaatioita esim. valokuvalle, niin mun pitää kertoa jokainen kuvan pikselin koordinaatit muunnosmatriisilla?

Metabolix [21.01.2013 22:28:47]

#

Mikähän ihmeen laskutoimitus on pikselin kertominen matriisilla? Ainakaan väriarvoja kertomalla ei saa aikaan mitään lineaaritransformaatiota, ja pikselin koordinaattien muuttaminen taas rikkoo kuvan niin, että lopputuloksen muuntaminen uudestaan järkeväksi kuvaksi ei ole ihan triviaalia – kuvassa pitää kuitenkin olla kokonaislukukoordinaatit.

Muunnoksen voi kyllä tehdä käänteisen transformaation avulla niin, että projisoi uuden kuvan pikselien kulmat vanhaan kuvaan ja laskee keskiarvon väreistä, joita uuteen pikseliin kuuluu. Esimerkiksi 2×1 pikselin kuvan (v0, v1) venytyksessä 3×1 pikselin kuvaksi (u0, u1, u2) muunnettaisiin uuden kuvan x-koordinaatit (0, 1, 2, 3) vanhaan kuvaan (0, 0,667, 1,333, 2) ja otettaisiin sitten näiltä alueilta värien keskiarvot; pikseliin u0 kuuluu vain pikseliä v0, pikseliin u1 kuuluu kolmannes pikseleistä v0 ja v1, ja pikseliin u2 kuuluu vain pikseliä v1.

Moniin transformaatioihin on kuitenkin myös parempia menetelmiä, joissa pyritään säilyttämään kuvan terävyys paremmin.

Triton [21.01.2013 22:35:27]

#

Niin siis ajatus oli nimenomaan koordinaattien kertominen...noh ilmeisesti homma ei ihan niin mennytkään kun alun perin ajattelin.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta