Bilinear interpoláció
A bilineáris interpoláció egy eljárás interpoláció a feladatokat a két változó egy szabályos rács (in) . Bármelyik pontban kiszámítja a függvény értékét, mindkét irányba a két legközelebbi szomszédból. Ez egy olyan módszer, amelyet a digitális képalkotásban széles körben használnak a kép átméretezésére , és amely jobb eredményeket nyújt, mint a legközelebbi szomszéd interpolációja, ugyanakkor ésszerű komplexitás mellett.
Általános elv
A nevével ellentétben az interpolációs függvény nem lineáris forma, hanem másodfokú, amelyet az alábbi formában lehet felvenni:
f(x,y)=nál nélx+by+vs.xy+d.{\ displaystyle f (x, y) = ax + by + cxy + d.}Az érték f ( x , y ) az interpolált érték azon a ponton, a koordináták ( x , y ) , és egy , b , c , d konstansok határozzuk meg a négy szomszédok ( x 1 , y 1 ), ( x 1 , annak a ( x , y ) pontnak a y 2 ), ( x 2 , y 1 ), ( x 2 , y 2 ) , amelynek értékét keressük. Ezen pontok értékeinek ismeretében 4 egyenletből 4 ismeretlent írhatunk :
{f(x1,y1)=nál nélx1+by1+vs.x1y1+df(x2,y1)=nál nélx2+by1+vs.x2y1+df(x1,y2)=nál nélx1+by2+vs.x1y2+df(x2,y2)=nál nélx2+by2+vs.x2y2+d{\ displaystyle \ left \ {{\ begin {mátrix} 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 {mátrix}} jobb.}A bilinear interpoláció két lineáris interpoláció egymásutániként értelmezhető , egy-egy irányba.
Rendszer megoldás
A változó megváltoztatása jelentősen leegyszerűsíti a megoldandó rendszert. Vegye figyelembe a következő új változókat:
dx=x-x1,dy=y-y1,{\ displaystyle dx = x-x_ {1}, \ quad dy = y-y_ {1},}ahol ( x 1 , y 1 ) a bal alsó sarok koordinátái. Ezután az új bilinear interpolációs függvényt írjuk:
f(dx,dy)=nál néldx+bdy+vs.dxdy+d.{\ displaystyle f (dx, dy) = a \, dx + b \, dy + c \, dx \, dy + d.}Bevezetésével jelöléseit és , hogy a mátrix invertálható válik:
Δx=x2-x1{\ displaystyle \ Delta x = x_ {2} -x_ {1}}Δy=y2-y1{\ displaystyle \ Delta y = y_ {2} -y_ {1}}
NÁL NÉL=(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}}} .
Marad a következő jelölések bevezetése:
Δ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}).}
Ekkor a probléma bilinear interpolációs függvényének megoldása közvetlenül jön:
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}).}
Hivatkozások
-
(in) Rafael C. Gonzalez és Richard E. Woods, Digital Image Processing , Prentice Hall,2008, „Képminta és kvantálás”, p. 66.
Kapcsolódó cikkek
<img src="https://fr.wikipedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" title="" width="1" height="1" style="border: none; position: absolute;">