文章目录
- 一、简介
- 二、实现代码
- 三、实现效果
- 参考资料
一、简介
在数学中,双三次插值是三次样条插值(一种将三次插值应用于数据集的方法)的扩展,用于在二维规则网格上插值数据点。插值曲面(指核形状,而非图像)比通过双线性插值或最近邻插值获得的相应曲面更平滑。双三次插值可以使用拉格朗日多项式、三次样条函数或三次卷积算法来实现。在图像处理中,当速度不是问题时,图像重采样时通常选择双三次插值,而不是双线性插值或最近邻插值。双线性插值仅考虑 4 个像素(2×2),而双三次插值则考虑 16 个像素(4×4)。不过使用双三次插值重采样的图像可能会产生不同的插值伪影,这取决于我们对其中系数的设置,OpenCV中默认设置为-0.75,而MATLAB中则是-0.5。
双三次插值使用一个三次函数来逼近图像表面。对于目标点 (x,y),其像素值 p(x,y)通过以下公式计算:
p ( x , y ) = ∑ i = − 1 2 ∑ j = − 1 2 p ( i , j ) ⋅ w ( x − i ) ⋅ w ( y − j ) p(x,y)=\sum_{i=-1}^{2} \sum_{j=-1}^{2} p(i,j)⋅w(x−i)⋅w(y−j)