理解双线性插值
双线性插值是二维插值中的关键方法。它利用矩形四个角点的值来估计矩形内某一点的未知函数值。该方法在计算机视觉、图像处理以及许多其他需要对规则网格数据进行近似的领域中至关重要。
四个角点
假设我们知道一个未知函数在由坐标 (x1,y1)、(x1,y2)、(x2,y1) 和 (x2,y2) 定义的矩形角点上的值。已知值如下:
- Q11 在 (x1,y1) 处
- Q12 在 (x1,y2) 处
- Q21 在 (x2,y1) 处
- Q22 在 (x2,y2) 处
我们想要计算该矩形内一点 (x,y) 处的插值结果 P。
公式原理
我们通过三次连续的线性插值得到 P。首先,在顶部和底部的水平方向进行插值:
R1=x2−x1x2−xQ11+x2−x1x−x1Q21
R2=x2−x1x2−xQ12+x2−x1x−x1Q22
然后在 R1 和 R2 之间垂直插值:
P=y2−y1y2−yR1+y2−y1y−y1R2
将 R1 和 R2 代入即得完整的双线性插值公式:
P=(x2−x1)(y2−y1)(x2−x)(y2−y)Q11+(x2−x1)(y2−y1)(x−x1)(y2−y)Q21+(x2−x1)(y2−y1)(x2−x)(y−y1)Q12+(x2−x1)(y2−y1)(x−x1)(y−y1)Q22
熟悉线性代数的读者也可用矩阵形式表示。
使用双线性插值计算器
使用该工具,只需输入:
- 矩形角点坐标 x1,y1,x2,y2
- 四个已知值 Q11,Q12,Q21,Q22
- 目标点坐标 x,y
计算器会自动应用双线性插值公式并返回估计值 P。这是无需手动计算权重即可快速执行二维插值的方法。
示例步骤
假设有以下数据:
- Q11=12 在 (0,1) 处
- Q12=−4 在 (0,3) 处
- Q21=0 在 (4,1) 处
- Q22=8 在 (4,3) 处
我们求 (1,2) 处的值。
设定 x1=0、x2=4、y1=1、y2=3。计算必要的乘积:
(x2−x1)(y2−y1)=4×2=8
(x2−x)(y2−y)=3×1=3
(x−x1)(y2−y)=1×1=1
(x2−x)(y−y1)=3×1=3
(x−x1)(y−y1)=1×1=1
代入公式:
P=83⋅12+81⋅0+83⋅(−4)+81⋅8
P=836−812+88=832=4
因此,(1,2) 处的插值结果为 4。
重要特性
- 加权平均:结果是角点值的加权和。每个角点的权重与对角的子矩形面积成正比,这意味着更近的角点影响力更大。
- 线性性:该公式关于各角点值 Q11 至 Q22 是线性的。同时,在任意行(y 恒定)或列(x 恒定)上也是线性的。
- 总体二次行为:当视为 x 和 y 的函数时,由于 xy 双线性项的存在,插值是二次的。
这些特性使双线性插值在图像缩放和矩形网格数据插值等二维任务中,成为简单性与平滑性之间广泛使用的折衷方案。