Anar al contingut

Interpolació bilineal

De L'Enciclopèdia, la wikipedia en valencià
Archiu:Bilinear interpolation.png
Els quatre punts rojos mostren les senyes conegudes i el punt vert representa el punt que volem interpolar.
Archiu:Bilininterp.png
Eixemple d'interpolació bilineal sobre el quadrat unitat en valors de z la magnitut iguals 0, 1, 1 i 1/2. El color indica el valor per als valors interpolados.

La interpolació bilineal és una extensió de l'interpolació llineal para interpolar funcions de dos variables (per eixemple, x i y) en una malla regular de dos dimensions.

L'idea principal és realisar una interpolació llineal en una direcció, i despuix en l'atra. Encara que cada u d'estos passos és llineal, l'interpolació en el seu conjunt no és llineal sino quadràtica.

Algoritme

[editar | editar còdic]

Suponga's que es vol trobar el valor per a la funció f desconeguda en el punt P = (x, i). Coneixem el valor de f en els quatre punts Q11 = (x1i1), Q12 = (x1i2), Q21 = (x2i1) i Q22 = (x2i2).

Primer es fa una interpolació llineal en la direcció x. Açò genera:

f(R1)x2xx2x1f(Q11)+xx1x2x1f(Q21)

a on R1=(x,y1),

f(R2)x2xx2x1f(Q12)+xx1x2x1f(Q22)

a on R2=(x,y2).

Despuix es fa una interpolació en la direcció i:

f(P)y2yy2y1f(R1)+yy1y2y1f(R2).

Açò proporciona una estimació de f(x, i).

f(x,y)f(Q11)(x2x1)(y2y1)(x2x)(y2y)+f(Q21)(x2x1)(y2y1)(xx1)(y2y)+f(Q12)(x2x1)(y2y1)(x2x)(yy1)+f(Q22)(x2x1)(y2y1)(xx1)(yy1)=1(x2x1)(y2y1)(f(Q11)(x2x)(y2y)+f(Q21)(xx1)(y2y)+f(Q12)(x2x)(yy1)+f(Q22)(xx1)(yy1)).

Cal tindre en conte que s'obtenen els mateixos resultats si l'interpolació es fa primer en la direcció i i despuix en la direcció x.

Quadrat unitat

[editar | editar còdic]

Si es tria un sistema de coordenades en els quals els quatre punts a on f és conegut siguen (0, 0), (0, 1), (1, 0) i (1, 1), llavors la fòrmula d'interpolació se simplifica notablement a:

O equivalentement, en forma matricial:

No-linealidad

[editar | editar còdic]

Contràriament a lo que el nom poguera sugerir, l'interpolació bilineal no és llineal, ya que de fet és el producte de dos funcions llineals (i, per tant, no llineal):

Alternativament, l'interpolació pot escriure's com:

a on

b1=f(0,0)
b2=f(1,0)f(0,0)
b3=f(0,1)f(0,0)
b4=f(0,0)f(1,0)f(0,1)+f(1,1).
Archiu:Bilinear interpolation visualisation.svg
En esta visualisació geomètrica, el valor del punt negre és la suma del valor en cada punt coloreat multiplicat per l'àrea del rectàngul del mateix color, dividida per l'àrea total dels quatre rectànguls.

En abdós casos, el número de constants (quatre) es correspon en el número de senyes en els que es coneix f. L'interpolació llineal a lo llarc de llínees paraleles a l'eix x o a l'eix y, equivalentmente si x o y es pren com a constant. A lo llarc de qualsevol atra llínea recta, l'interpolació resulta una funció quadràtica.

Deu notar-se, no obstant, que encara que l'interpolació no és llineal en la posició (x i i), és llineal en amplitut, com pot vore's a partir de les equacions anteriors: tots els coeficients bj, j=1..4 són proporcionals al valor de la funció f(,).

El resultat d'una interpolació bilineal és independent de l'orde (ací orde significa qué eix es interpola primer i com el segon. Si es realisara primer una interpolació llineal en sobre l'eix i i després sobre l'eix x, l'aproximació resultant és la mateixa.

Existix una extensió òbvia de l'interpolació llineal a tres dimensions denominada interpolació trilineal.

Aplicació en el processat d'imàgens

[editar | editar còdic]

En la visió artificial i en el processament digital d'imàgens, l'interpolació bilineal és una tècnica bàsica de remuestreo.

Vore també

[editar | editar còdic]