Bilinær interpolasjon
Den bilineære interpolasjonen er en metode for interpolering for funksjoner av to variabler på et vanlig rutenett (in) . Den beregner verdien av en funksjon når som helst, fra de to nærmeste naboene i hver retning. Det er en metode som er mye brukt i digital bildebehandling for å endre størrelse på bilder , noe som gir bedre resultater enn nærmeste nabointerpolasjon, mens den fortsatt er av rimelig kompleksitet.
Generelt prinsipp
I motsetning til hva navnet antyder, er interpolasjonsfunksjonen ikke en lineær, men kvadratisk form, som kan settes i form:
f(x,y)=påx+by+vs.xy+d.{\ displaystyle f (x, y) = ax + by + cxy + d.}Verdien f ( x , y ) er den interpolerte verdien på koordinatpunktet ( x , y ) , og a , b , c , d er konstanter bestemt fra de fire naboene ( x 1 , y 1 ), ( x 1 , y 2 ), ( x 2 , y 1 ), ( x 2 , y 2 ) til punktet ( x , y ) hvis verdi vi leter etter. Når vi kjenner verdiene på disse punktene, kan vi skrive et system med 4 ligninger med 4 ukjente :
{f(x1,y1)=påx1+by1+vs.x1y1+df(x2,y1)=påx2+by1+vs.x2y1+df(x1,y2)=påx1+by2+vs.x1y2+df(x2,y2)=påx2+by2+vs.x2y2+d{\ displaystyle \ left \ {{\ begin {matrix} f (x_ {1}, y_ {1}) = ax_ {1} + by_ {1} + cx_ {1} y_ {1} + d \\ f ( x_ {2}, y_ {1}) = ax_ {2} + by_ {1} + cx_ {2} y_ {1} + d \\ f (x_ {1}, y_ {2}) = ax_ {1} + by_ {2} + cx_ {1} y_ {2} + d \\ f (x_ {2}, y_ {2}) = ax_ {2} + by_ {2} + cx_ {2} y_ {2} + d \ end {matrix}} \ right.}Bilinær interpolasjon kan tolkes som en rekke av to lineære interpolasjoner , en i hver retning.
Systemløsning
En endring av variabelen forenkler systemet som skal løses betydelig. Tenk på følgende nye variabler:
dx=x-x1,dy=y-y1,{\ displaystyle dx = x-x_ {1}, \ quad dy = y-y_ {1},}hvor ( x 1 , y 1 ) er koordinatene til nedre venstre hjørne. Den nye bilineære interpolasjonsfunksjonen skrives deretter:
f(dx,dy)=pådx+bdy+vs.dxdy+d.{\ displaystyle f (dx, dy) = a \, dx + b \, dy + c \, dx \, dy + d.}Ved å introdusere den notasjoner og , matrisen som skal inverteres blir:
Δx=x2-x1{\ displaystyle \ Delta x = x_ {2} -x_ {1}}Δy=y2-y1{\ displaystyle \ Delta y = y_ {2} -y_ {1}}
PÅ=(0001Δx0010Δy01ΔxΔyΔxΔy1){\ displaystyle A = {\ begin {pmatrix} 0 & 0 & 0 & 1 \\\ Delta x & 0 & 0 & 1 \\ 0 & \ Delta y & 0 & 1 \\\ Delta x & \ Delta y & \ Delta x \ Delta y & 1 \\\ end {pmatrix}}} .
Det gjenstår å introdusere følgende notasjoner:
Δfx=f(x2,y1)-f(x1,y1),Δfy=f(x1,y2)-f(x1,y1),{\ displaystyle \ Delta f_ {x} = f (x_ {2}, y_ {1}) - f (x_ {1}, y_ {1}), \ quad \ Delta f_ {y} = f (x_ {1 }, y_ {2}) - f (x_ {1}, y_ {1}),}
Δfxy=f(x1,y1)+f(x2,y2)-f(x2,y1)-f(x1,y2).{\ displaystyle \ Delta f_ {xy} = f (x_ {1}, y_ {1}) + f (x_ {2}, y_ {2}) - f (x_ {2}, y_ {1}) - f (x_ {1}, y_ {2}).}
Den bilineære interpolasjonsfunksjonen til problemet kommer da direkte:
f(x,y)=ΔfxdxΔx+ΔfydyΔy+ΔfxydxΔxdyΔy+f(x1,y1).{\ displaystyle f (x, y) = \ Delta f_ {x} {\ frac {dx} {\ Delta x}} + \ Delta f_ {y} {\ frac {dy} {\ Delta y}} + \ Delta f_ {xy} {\ frac {dx} {\ Delta x}} {\ frac {dy} {\ Delta y}} + f (x_ {1}, y_ {1}).}
Referanser
-
(in) Rafael C. Gonzalez and Richard E. Woods, Digital Image Processing , Prentice Hall,2008, “Bildesampling og kvantisering”, s. 66.
Relaterte artikler
<img src="https://fr.wikipedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" title="" width="1" height="1" style="border: none; position: absolute;">