任务:将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)应用线性插值