图像处理中有一个常用的操作,叫做下采样,不同领域,不同场景有着不同的目的。比如深度学习中,会将输入进行池化操作,也即下采样,目的可以增加感受野,更好的利于目标检测;又比如我们在原图上进行图像操作,太耗费计算量了,我们可能不需要在原图而只在更小的1/4图上或者1/9图上就可以达到相同的目的,所以也会考虑进行下采样操作,将原图缩小。下采样的例子多之又多,应用之广泛。
但是这里存在一个问题,不管是下采样或者上采样,都将图像尺寸改变了,那么在改变后的图像尺寸空间中,图像的灰度值应该如何取舍呢?要知道图像是以像素为单位,即精度为1。经过尺寸变换后的点几乎不会正好落在原图某个点上,而是在几个点之间,这里就涉及到了如何根据周边的点来确定当前点的灰度值,这便是插值。
图1中,P点为采样后新图像上某点对应在原图上的位置,然后根据周边相邻的Q11,Q12,Q22,Q21四个点来进行取值,此图可以说明最近邻插值和双线性插值。
1、最近邻插值
最近邻插值很简单,正如其名,最近的临近点,即与映射点P(x,y)最近的点值作为P点的灰度值,图1中Q11(x0,y0)与P点最近,所以此插值点从Q11处取值。最近邻插值计算量很小,速度很快。但由于没考虑到周围相邻点的影响,所以会导致图像质量变差,可能会出现马赛克和锯齿现象。
2、双线性插值
双线性插值需要做三次线性插值,可以先在x轴方向做两次线性插值,然后在插值的基础上在y轴方向再做一次线性插值即可得到最终的插值。这样计算量会比最近邻插值更大,但可以换取更高的图像质量。具体计算过程如图2所示:
3、双三次插值
双三次插值相对于前面两种插值方法,计算要更加的复杂。从参考临近的四个像素点取值,提升为参考周围十六个像素点的取值,所以插值也更加的准确可靠。总的来讲,是一种以权重来取值的思想,根据周边点距插值点的距离具有不同的权重。
如图3所示,插值点为(i+u,j+v),此点插值计算公式如图4所示:
插值权重核函数图像w(x)如图5所示: