所谓近朱者赤近墨者黑,无论什么插值方法根本思想都是一样的。
先讲一下最近邻插值法,就是找到未知像素点相邻的4个已知像素点,然后判断哪一个像素离着未知像素点近,就让那个点同化未知像素点,赋予未知点同样的像素值。
当然你会说,我们还不知道怎么把小图上的点放置到大图上的位置上去,而且两图不成比例的话更不好放置了,那又怎么去寻找位置点以及未知点周围的点呢?而且边缘的点还未必能够找的到4个邻居。
但是实际处理的时候不用考虑那么多,我们直接按照下面的式子去处理:
使用目标图的坐标乘以两图的长宽比例得到原图的坐标,当然这个坐标可能会是小数,就直接四舍五入了,这样就得到了两个图像中坐标的对应关系,使它们具备同样的像素值即可。
就这么简单,缺点也很明显,插值后你放大图像就像打了马赛克一样,失真严重。
----------------------------------------------------------------------------------------------------------------------------------
双线性插值法是图像插值的一个重要方法,下面我们来看一下,我尽量通俗的把它介绍一下。
首先我们先看一下什么是单线性插值。
比如给你上面这个图,本来有两个大师x0和x1,他们的法力值为f(x0)和f(x1),现在在某个地方出现了一个徒弟x,那么请问徒弟学会了多少法力呢?博主是个感性的人,f(x)可以直接理解为x0或x1离x越近产生的影响越大,那么f(x)就等于x0和x1距离x的相应比比例乘以f(x1)和f(x0)求和,然后就得到下面的式子了:
如果把f(x0)和f(x1)看成像素值,x0和x1看成一维坐标,那么这就是一个单线性插值的图像问题了。
而双线性插值呢就是在x,y两个方向上进行了3次单线性插值。
看下面左边的图,P点为待求点,Q11、Q12、Q21、Q22分别是离P点最近的4个已有点。右边的立体图则更形象一些,可以把右边图中的高度看成像素灰度值,黄色点标错了,应该是(x,y)点,其他点都是棕色的。
我们要求P点的像素值,就先在X方向上进行两次单线性插值求得R1和R2的值。
然后在Y方向上进行一次单线性插值。
把上面三次插值处理的式子结合起来,也就得到了我们要求的P点的像素值,如下:
这样我们就求得P点的像素值了,有没有发现分母都是1?在实际用的时候又会引出其他的问题比如中心对齐问题,大家自己去看相关资料吧。
但是双线性插值是有缺点的:
(1)该方法具有很好的平滑作用,但是平滑作用会使细节退化,放大后很明显。
(2)不连续性会产生我们不想要的结果。本来我们需要像素值值不连续或者有剧烈变化,但处理后该特征消失。
-----------------------------------------------------------------------------------------------------------------------------------
此外还有高阶插值,又称双三次插值法,理解起来就困难一些了,先上一张关键图,以后有时间我在分析一下。