[转载]双线性内差值算法

维基百科,自由的百科全书

双线性插值 ,又称为双线性内插 。在数学 上,双线性插值 是有两个变量的插值 函数的线性插值 扩展,其核心思想是在两个方向分别进行一次线性插值。

红色的数据点与待插值得到的绿色点

假如我们想得到未知函数 f 在点 P = (x , y ) 的值,假设我们已知函数 fQ 11 = (x 1y 1 )、Q 12 = (x 1y 2 ), Q 21 = (x 2y 1 ) 以及 Q 22 = (x 2y 2 ) 四个点的值。

首先在 x 方向进行线性插值,得到

 f(R_1) /approx /frac{x_2-x}{x_2-x_1} f(Q_{11}) + /frac{x-x_1}{x_2-x_1} f(Q_{21}) /quad/mbox{where}/quad R_1 = (x,y_1),
 f(R_2) /approx /frac{x_2-x}{x_2-x_1} f(Q_{12}) + /frac{x-x_1}{x_2-x_1} f(Q_{22}) /quad/mbox{where}/quad R_2 = (x,y_2).

然后在 y 方向进行线性插值,得到

 f(P) /approx /frac{y_2-y}{y_2-y_1} f(R_1) + /frac{y-y_1}{y_2-y_1} f(R_2).

这样就得到所要的结果 f (x , y ),

 f(x,y) /approx /frac{f(Q_{11})}{(x_2-x_1)(y_2-y_1)} (x_2-x)(y_2-y) + /frac{f(Q_{21})}{(x_2-x_1)(y_2-y_1)} (x-x_1)(y_2-y)
  + /frac{f(Q_{12})}{(x_2-x_1)(y_2-y_1)} (x_2-x)(y-y_1) + /frac{f(Q_{22})}{(x_2-x_1)(y_2-y_1)} (x-x_1)(y-y_1).

如果选择一个坐标系统使得 f 的四个已知点坐标分别为 (0, 0)、(0, 1)、(1, 0) 和 (1, 1),那么插值公式就可以化简为

 f(x,y) /approx f(0,0) /, (1-x)(1-y) + f(1,0) /, x(1-y) + f(0,1) /, (1-x)y + f(1,1) xy.

或者用矩阵 运算表示为

 f(x,y) /approx /begin{bmatrix}
1-x & x /end{bmatrix} /begin{bmatrix}
f(0,0) & f(0,1) //
f(1,0) & f(1,1) /end{bmatrix} /begin{bmatrix}
1-y //
y /end{bmatrix}

与这种插值方法名称不同的是,这种插值方法并不是线性的,它的形式是

 (a_1 x + a_2)(a_3 y + a_4), /,

它是两个线性函数的乘积。另外,插值也可以表示为

 b_1 + b_2 x + b_3 y + b_4 x y. /,

在这两种情况下,常数的数目]都对应于给定的 f 的数据点数目。

线性插值的结果与插值的顺序无关。首先进行 y 方向的插值,然后进行 x 方向的插值,所得到的结果是一样的。

双线性插值的一个显然的三维空间延伸是三线性插值

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值