Bilineaarinen interpolaatio

Bilineaarinen interpolaatio on matematiikassa approksimaatiomenetelmä, joka on lineaarisen interpolaatiomenetelmän kaksiulotteinen laajennus. Siinä tasoalueen pisteiden arvoja lasketaan lähimpien pisteiden arvojen avulla sovittamalla kahdessa suunnassa lineaarisia polynomeja eli interpolaatiosuoria. Koska lineaarisia sovituksia on kaksi, kutsutaan menetelmää bilineaariseksi. Yleisessä käytössä on ollut kaksi menetelmää, joista toinen hyödyntää kolme ja toinen neljä näytepistettä. Interpoloinnin seurauksena syntyy silloin joko lineaarisia- tai kvadraattisia pintoja. Näitä pintoja kutsutaan interpolanteiksi tai interpolaatiopinnoiksi.
Tasoalueella satunnaisesti sijaitsevat pisteet voidaan aina yhdistää toisiinsa kolmioiksi, jotka sivuavat toisensa tiiviisti. Kolmion sisällä tapahtuva bilineaarinen interpolaatio on siksi aina mahdollista toteuttaa yksinkertaisella tavalla. Satunnaisia tason pisteitä ei aina ole helppo yhdistää nelikulmioiksi, jotka olisivat aina konvekseja. Bilineaarinen interpolaatiomenetelmässä nelikulmion vastakkaisten sivujen väliset suorat tulisi leikata toisensa nelikulmion sisällä, mikä ei aina onnistu ei-konveksissa nelikulmiossa. Neljän pisteen bilineaarinen interpolaatio totetutetaankin yleensä pisteille, jotka sijaitsevat suorakulmion kärjissä. Silloin näytepisteet on otettu hilamaisen verkon solmukohdissa.
Aiemmin bilineaarista interpolaatiota käytettiin kartografiassa, luonnontieteellisessä tutkimuksessa ja numeerisessa matematiikassa. Nykyään yleisimpiä sovelluskohteita ovat sekä digitaalisten valokuvien kuvankäsittely, tietokonepelien hahmojen käsittely ja elokuva-alan tehosteet. Nykyään nelikulmiossa totetutetut bilineaariset interpolaatiot ovat suoritetuista algoritmeista yleisimpiä, koska esimerkiksi monet kuvankäsittelyohjelmat hallitsevat bilineaarisen kuvankäsittelyn.

Bilineaarinen interpolaatio kolmiossa

Vaikka kolmella näytepisteellä toteutettu lineaarinen interpolaatio jää suosiossa neljän pisteen menetelmälle, on sillä vielä etulyöntiasema tietyissä tilanteissa. Jokainen pinta, esimerkiksi tasot, pallopinnat tai aaltoilevat pinnat, voidaan miehittää epäsäännöllisellä näytepopulaatiolla. Tällaisellä pistejoukolla voidaan aina muodostaa kolmioita, jotka peittävät pinnan tarkasti ja joilla voidaan suorittaa bilineaarinen interpolaatio kaikille tason pisteille.
Kolmiomenetelmässä valitaan kaksi sivua, joihin merkitään kumpaankin yksi sisäpiste. Sisäpisteiden arvot lasketaan lineaarisella interpolaatiolla, jossa hyödynnetään sivujensa päätepisteiden arvoja. Toisessa vaiheessa yhdistetään sivujen sisäpisteet suoralla, jonka pisteet lasketaan lineaarisella interpolaatiolla edellisessä vaiheessa laskettujen arvojen avulla. Kolmion sisäpisteen arvo selviää kolmella interpolaatiolla.

Bilineaarinen interpolaatio nelikulmiossa

Tässä esitettävä menetelmä perustuu suorakulmioon, koska sen avulla on helppo demostroida suorakulmaisessa koordinaatistossa menetelmän perusperiaatteet. Sillä ratkeaa myös suorakulmioista affiinikuvauksella muodostettavien muiden nelikulmioiden bilineaariset interpolaatiot. Affiinikuvauksia ei käsitellä tässä.

Sovellus: Digitaalisen valokuvan käsittely

Digitaalista valokuvaa pienennettäessä voidaan neliön vierekkäiset neljä kuvapikseliä kutistaa yhdeksi pikseliksi bilineaarisella interpolaatiolla. Pikselien numeeriset arvot interpoloidaan yhdeksi numeeriseksi arvoksi, joka sijoitetaan kopiokuvaan vastaavalle paikalle pienennöksessä. Valokuvia suurennettaessa osa pikseleistä kopioidaan alkuperäisestä valokuvasta ja osa pikseleistä luodaan tyhjinä. Tyhjät pikselit täytetään interpoloimalla viereisiä pikseleitä bilineaarisesti. Samalla voidaan interpoloida kopioituja pikseleitä uudelleen sahalaitaisuuden välttämiseksi.