线性插值
线性插值是指插值函数为一次多项式的插值方式。
线性插值可以用来近似代替原函数,也可以用来计算得到查表过程中表中没有的数值。
一次线性插值(线性插值)
一维度上的波形,或者在函数上离散的点求中间点y的值时,使用线性插值就是通过两个点之间的间距比例,从两个点的y值比例计算得到目标y值,就是一次线性插值了;
设p1
坐标为(x1,y1)
,p2
坐标为(x2,y2)
,要求x=c
时的y值;
则结果为:
y
=
y
2
−
y
1
x
2
−
x
1
×
(
c
−
x
1
)
+
y
1
y = \frac{y2-y1}{x2-x1}\times \left ( c-x1 \right )+y1
y=x2−x1y2−y1×(c−x1)+y1
y
=
y
2
−
y
1
x
2
−
x
1
×
(
c
−
x
1
)
+
y
1
=
c
−
x
1
x
2
−
x
1
×
y
2
+
c
−
x
1
x
2
−
x
1
×
(
−
y
1
)
+
y
1
=
c
−
x
1
x
2
−
x
1
×
y
2
+
x
1
−
c
+
x
2
−
x
1
x
2
−
x
1
×
y
1
=
x
2
−
c
x
2
−
x
1
×
y
1
+
c
−
x
1
x
2
−
x
1
×
y
2
y = \frac{y2-y1}{x2-x1}\times \left ( c-x1 \right )+y1\\ =\frac{c-x1}{x2-x1}\times y2 + \frac{c-x1}{x2-x1}\times (-y1) + y1\\ =\frac{c-x1}{x2-x1}\times y2 + \frac{x1-c+x2-x1}{x2-x1}\times y1\\ =\frac{x2-c}{x2-x1}\times y1 + \frac{c-x1}{x2-x1}\times y2
y=x2−x1y2−y1×(c−x1)+y1=x2−x1c−x1×y2+x2−x1c−x1×(−y1)+y1=x2−x1c−x1×y2+x2−x1x1−c+x2−x1×y1=x2−x1x2−c×y1+x2−x1c−x1×y2
双线性插值(二次线性插值)
之前的一次线性插值是根据一维度x方向去求得y值;双线性插值的场景是使用两个维度指向的值;
双线性插值,又称为双线性内插。在数学上,双线性插值是有两个变量的插值函数的线性插值扩展,其核心思想是在两个方向分别进行一次线性插值。
双线性插值作为数值分析中的一种插值算法,广泛应用在信号处理,数字图像和视频处理等方面。
已知C1
点、C2
点、C3
点、C4
点的值分别为z1
、z2
、z3
、z4
,求点C
的值;
先在x维度上根据一次线性插值的原理计算出C12
和C34
的对应的值;
计算C12
的值的公式为
y
=
z
2
−
z
1
x
2
−
x
1
×
(
c
−
x
1
)
+
z
1
y = \frac{z2-z1}{x2-x1}\times \left ( c-x1 \right )+z1
y=x2−x1z2−z1×(c−x1)+z1;
再在y维度上根据一次线性插值,由C12
和C34
的对应的值计算得到点C
的值,同样也是使用一次线性插值;
下面这张图就是先计算出Z1
和Z2
,然后再计算出Z
;
线性插值的结果与插值的顺序无关。首先进行y方向的插值,然后进行x方向的插值,所得到的结果是一样的。双线性插值的结果与先进行哪个方向的插值无关。
使用双线性插值对图像进行缩放,缩放后的图像质量高,不会出现像素值不连续的情况,但是计算量很大,而且由于双线性插值具有低通滤波器的性质,会使高频分量受损,所以可能会使图像轮廓在一定程度上变得模糊;
双线性插值法适用于旋转变换、错切变换、一般线性变换和非线性变换都使用;
三线性插值(三次线性插值)
同双线性插值,三线性插值是在三个维度上的线性插值;
如果要计算C
点的值;
1.计算C001
与C011
线段与绿色线的交点;计算C100
与C110
线段与绿色线的交点;使用的是线性插值;
2.计算C
点在平面C001-C101-C111-011
上的投影点,也就是紫色线与绿色线的交点;使用的是线性插值;
3.两个紫色线与绿色线的交点计算C
点的值;使用的是线性插值;
参考资料
1.https://baike.baidu.com/item/%E7%BA%BF%E6%80%A7%E6%8F%92%E5%80%BC/19113392?fr=aladdin