算法来源
Cubic Convolution Interpolation for Digital Image Processing

在双线性插值法中
某一个点的插值是由它周围四个点的不同权重的加权得到的。

在双三次中其实是类似的
image.png
https://www.jianshu.com/p/be68e70063e9


Bilinear Interpolation

先从线性插值开始聊起。

image.png
我们原图的分辨率为
3x3现在我们要扩充到4x4,那么就一定会出现一些地方的像素值为空的情况。

现在的问题在于,我们应该如何去填充这些地方的像素值呢?

我们可以先通过比例换算,得到空缺像素的地方对应到原来的图片中应该处于像素的哪些位置。

比如说(2,1)对应到原图的(1.5,0.75)对应到原图上时,那个点不是整数点,所以我们要通过插值的手段来计算得出像素点的值。

image.png,这是(1.5,0.75)周围的四个点,通过这四个点计算出目标像素点的值。


先来说说,两个点之间如何插值。

image.png

利用一次函数的性质,我们就可以计算得出两个点之间,任意点的值。

这样两个点之间的值,就可以通过端点乘以对应的比例得出。

image.png
那现在问题在于,四个点如何进行插值呢?

我们先画一条平行线,计算出平行线两端的点的值。

就是进行三次,线性插值。