统计学—双线性插值(三)

双线性插值其函数其实不是线性的,函数类似于F(x,y)=a0+a1x+a2y+a3xy。

通过函数我就可以看出来,我们想要得到的插值点是位于任意一(x,y)位置上的第三维的值F(x,y)。我们可以想象我们正在处理一张图片A,像素的行列号即是(x,y),像素的灰度值就是F(x,y),当我们需要对这张图片的像素值进行重采样的时候,新图片的每个像素灰度值是多少呢?这就需要进行插值处理了。

                                       统计学—双线性插值(三)

如上图所示,P1、P2、P3、P4代表4个像素的中心点,其行列号为(x1,y1)、(x2,y1)、(x1,y2)、(x2,y2)对应的灰度值为D1、D2、D3、D4,Q为我们重采样后的像素点,灰度值为D。

对于Q的行列号,我们需要分清楚的是:

由于对原始图像进行了重采样,所以像素的大小发生了变化(图中的蓝框为原始像素的大小,红框为重采样后的像素大小)。

由此可知,假如原始图片是300*300的大小,那么重采样后可能为500*700(照片的实际尺寸没变,只是像素大小变了导致了行列数增加).这也就是说在确定了重采样的像素大小后,新图片的行列数就已经确定了,只不过此时还不知道每个像素的灰度是多少,在新图片里Q点的行列号我们用(R,C)来表示。

 但是,插值需要我们知道Q点在原始图片上的行列号是多少,因此我们用(x,y)来表示Q点在原始影像上的行列号(可以用小数表示行列号,如1.2行,1.7列)。其中(x,y)是可以由(R,C)及重采样前后像素大小的变化比率计算出来的。比如,重采样后的像素是原始像素的0.6倍,则x=R*0.6    y=C*0.6。

     好,现在我们知道了P1、P2、P3、P4、Q的坐标后,如何利用双线性插值来得到Q点灰度值D呢?

双线性插值实际上是先在X轴上进行一次线性插值,然后再在Y轴上进行一次线性插值。用图中的点位来解释的话就是:

(1)先在X轴上插值,得到R1和R2的灰度值

统计学—双线性插值(三)

                                                       统计学—双线性插值(三)

                                                      统计学—双线性插值(三)

(2)在Y方向上对R1、R2进行插值,得到Q点的灰度值 

                                                    统计学—双线性插值(三)

算法理解上,在一个三维空间(X,Y,D)中对某点进行插值,先将四个点投影到X-D 平面,进行线性插值得到R1、R2的灰度值,再将R1、R2两个点投影到Y-D平面进行线性插值,得到Q点的灰度值。