无论是解拜耳还是图片放大,在数字图像处理的很多阶段都需要图像插值。图像插值也出现在图像缩放、图像重映射(比如修正镜头畸变、改变透视、旋转图像)等过程中。
如果插值算法不同,就算做同样的图像缩放和重映射,产生的效果也有很大不同。
概念
插值指的是利用已知数据估计未知值。举个例子:如果你手头只有中午11点和下午1点的温度数据,但是想知道午时的温度,就可以用线性插值的方法估计出来。
图片来源:cambridgeincolor
但如果你有11:30的数据,就会发现,在午时之前,温度会大幅上涨,这时就可以用二次插值法了。
图片来源:Cambridgeincolor
接近午时的温度数据越多,你使用的插值算法也会更复杂(可能也更精确)。
图像缩放举例
图像插值力求根据临近像素值以最小误差估计出某个像素的颜色和强度。下图展示了图像放大的原理:
图片来源:Cambridgeincolor
和空气温度的变化及上面理想情况下的渐变不同,不同位置的像素值的差异可能非常大。但和上面测温的原理一样,临近像素值的已知数据越多,插值的效果越好。所以,当我们不断地拉伸图片的时候,看到的效果会越来越差,这是因为插值不能增加图像上原有的细节信息。
图像旋转举例
当旋转图像或者改变图像形状的时候,也需要用到插值。前一个例子可能让人觉得插值的效果还不错,但是在下面的例子中,图像的细节快速减少:
图片来源:Cambridgeincolor
90度的旋转是无损的,因为像素的间距不会在这个过程中拉大。但是,第一幅图在旋转了一圈以后就已经损失了不少画质,随着旋转圈数的增加,画质损失会更严重。所以,我们要尽量避免旋转图像,如果万不得已,也尽量只旋转一圈。
上面使用的是双三次插值算法,可以看出画质损失很严重:颜色的强度减小,对比度减弱,在浅蓝色中出现了暗色的光晕。(T)