在数值分析 这个数学 分支中,双三次插值 (英語:Bicubic interpolation )是二维 空间中最常用的插值 方法。在这种方法中,函数 f 在点 (x , y ) 的值可以通过矩形 网格 中最近的十六个采样点的加权平均 得到,在这里需要使用两个多项式插值 三次函数 ,每个方向使用一个。
属性
通过双三次插值可以得到一个连续的插值函数,它的一阶偏导数连续,并且交叉导数处处连续。
公式
双三次插值通过下式进行计算:
a
00
+
a
10
x
+
a
01
y
+
a
20
x
2
+
a
11
x
y
+
a
02
y
2
+
a
21
x
2
y
+
a
12
x
y
2
+
a
22
x
2
y
2
+
a
30
x
3
+
a
03
y
3
+
a
31
x
3
y
+
a
13
x
y
3
+
a
32
x
3
y
2
+
a
23
x
2
y
3
+
a
33
x
3
y
3
{\displaystyle a_{00}+a_{10}x+a_{01}y+a_{20}x^{2}+a_{11}xy+a_{02}y^{2}+a_{21}x^{2}y+a_{12}xy^{2}+a_{22}x^{2}y^{2}+a_{30}x^{3}+a_{03}y^{3}+a_{31}x^{3}y+a_{13}xy^{3}+a_{32}x^{3}y^{2}+a_{23}x^{2}y^{3}+a_{33}x^{3}y^{3}}
或者用一种更加紧凑的形式,
∑
i
=
0
3
∑
j
=
0
3
a
i
j
x
i
y
j
{\displaystyle \sum _{i=0}^{3}\sum _{j=0}^{3}a_{ij}x^{i}y^{j}}
计算系数
a
i
j
{\displaystyle a_{ij}}
的过程依赖于插值数据的特性。如果已知插值函数的导数,常用的方法就是使用四个顶点的高度以及每个顶点的三个导数。一阶导数
h
′
x
{\displaystyle h'x}
与
h
′
y
{\displaystyle h'y}
表示 x 与 y 方向的表面斜率,二阶相互导数
h
″
x
y
{\displaystyle h''xy}
表示同时在 x 与 y 方向的斜率。这些值可以通过分别连续对 x 与 y 向量取微分得到。对于网格单元的每个顶点,将局部坐标(0,0, 1,0, 0,1 和 1,1) 带入这些方程,再解这 16 个方程。
在计算机图形学中的应用
双三次插值算法经常用于图像或者影片的缩放,它能比占主导地位的双线性滤波 算法保留更好的细节品质。
参见
外部链接