opencv 最近邻插值法的原理

首先给出目标点与原图像点之间坐标的计算公式:

参数说明:

1.srcx,srcy:表示原图像的像素点的横坐标和纵坐标

2.detx,dety:表示缩放过后图像的像素点的横坐标和纵坐标

3.srcWidth,srcHeight:表示原图像的宽高

4.detWidth,detHeight:表示缩放后的图像的宽高

通俗的讲,该公式就是让目标图像中的每个像素值都能找到对应的原图中的像素值,这样才能根据不同的插值方法来获取新的像素值。

根据该公式,我们就可以得到每一个目标点所对应的原图像的点,比如一个2*2的图像放大到4*4,如下图所示,其中红色的为每个像素点的坐标,黑色的则表示该像素点的像素值。

那么根据公式我们就可以计算出放大后的图像(0,0)点对应的原图像中的坐标为:

也就是原图中的(0,0)点,而最近邻插值的原则是:目标像素点的像素值与经过该公式计算出来的对应的像素点的像素值相同,如出现小数部分需要进行取整。那么放大后图像的(0,0)坐标处的像素值就是原图像中(0,0)坐标处的像素值,也就是10。

接下来就是计算放大后图像(1,0)点对应的原图像的坐标,还是带入公式:

也就是原图中的(0.5,0)点,因此需要对计算出来的坐标值进行取整,取整后的结果为(0,0),也就是说放大后的图像中的(1,0)坐标处对应的像素值就是原图中(0,0)坐标处的像素值,其他像素点计算规则与此相同。