最近邻插值(Nearest neighbour interpllation)与 双线性插值(bilinear interpolation)

参考文章 最近邻插值
参考文章 双线性插值

任务:将2x2的扩大为原来的两倍

在这里插入图片描述

最近邻插值(将未知像素分配给位置最近的元素)

  • (1)位置的计算
    像素的位置用中心值表示,输入矩阵中的每个像素都有单位的长度和宽度,也就是输入图像的长度和宽度都是1。

OpenCV的索引从0开始,而matlab的索引从1开始。但是为了简单起见,我们将从0.5开始索引,这意味着我们的第一个像素位于0.5,下一个位于1.5,依此类推,如下所示
在这里插入图片描述
所以输入图像中每个像素的位置为
{‘10’:( 0.5,0.5),‘20’:( 1.5,0.5),‘30’:( 0.5,1.5),
‘40’:(1.5,1.5)}

  • 对4x4的矩阵进行填充
    将上面计算出的每个未知像素的坐标与输入图像像素进行比较(将4×4图像投影到输入的2×2图像上),以找出最近的像素,比如 P1的位置(0.25, 0.25)最接近2x2矩阵中的10(0.5,0.5),所以P1的值为10,剩下的以此类推

在这里插入图片描述

双线性插值(在两个方向上应用线性插值)

  • 线性插值
    在这里插入图片描述
    根据10 和 20 估计中间的两个点,通过对已知点的点赋予相应的权重来进行预测,越接近哪个点,相应的权重就越大。

  • 双线性插值
    在这里插入图片描述
    已知位置(0, 0)、(0,1)、(1, 0)和(1, 1)处的值,预测(0.3, 0.4)位置处的值。

步骤:(1)先通过线性插值沿行找到值,即位置A:(0,0.4)和B:(1,0.4)
(2)在获得A和B处的值之后,对A和B之间的点(0.3,0.4)应用线性插值
在这里插入图片描述

在这里插入图片描述

发布了12 篇原创文章 · 获赞 4 · 访问量 1266

猜你喜欢

转载自blog.csdn.net/qq_36321330/article/details/105340630