在图像几何变换时,无法给有些像素点直接赋值,例如,将图像放大两倍,必然会多出一些无法被直接映射的像素点,对于这些像素点,通过插值决定它们的值。于是,产生了图像插值算法。
插值法主要可以分为两类,一类是线性图像插值方法,另一类是非线性图像插值方法
那么在传统的插值方法如最近邻插值,双线性插值以及双三次插值等都属于线性插值方法。这类插值方法在图像插值过程中采用同一种插值内核,不用考虑待插像素点所处的位置,这种做法会使图像中的边缘变得模糊不清,达不到高清图像的视觉效果。
非线性插值方法主要包括:基于小波系数的方法和基于边缘信息的方法。
- 基于边缘信息的方法
- 隐式方法
- 显式方法
在图像处理领域中,上采样的技术是图像进行超分辨率的必要步骤。比如说
Pre-upsampling通常是先在网络之外将原始的LR(Low Resolution)的图像通过插值法(双三次插值)扩大到MR级别的图像,再将MR图像输入网络。这种方法是SRCNN所采用的,SRCNN先将图像插值扩大,在通过三个简单的卷积层将其映射到HR图像上。
上采样的技术有很多不同的方法,但是大致被总结成了三个类别:
- 1、基于线性插值的上采样
- 2、基于深度学习的上采样(转置卷积)
- 3、Unpooling的方法
这里只介绍基于线性插值的上采样
线性插值
线性插值:使用连接两个已知量的直线来确定在这两个已知量之间的一个未知量的值。线性插值形式:
f
(
x
)
=
a
1
x
+
a
0
f(x) = a_1x+a_0
f(x)=a1x+a0
两点求一条直线公式(这是双线性插值所需要的唯一的基础公式)
经过简单整理成下面的格式:
首先看分子,分子可以看成 x 与 x11 和x2 的距离作为权重,这也是很好理解的,P点与P1、P点符合现行变化关系,所以P离P1就更接近P1,反之则更接近P2,现在再把公式中的分式看成一个整体,原式可以理解成y1与yP2是加权系数,我们的根本目的在图像中根据2个点的像素值求未知点的像素值。
y1 与y2分别代表原图像中的像素值
最近邻插值
最近邻插值算法是最简单的一种插值算法,当图片放大时,缺少的像素通过直接使用与之最近原有颜色生成,也就是说照搬旁边的像素这样做结果产生了明显可见的锯齿。在待求像素的四邻像素中,将距离待求像素最近的邻灰度赋给待求像素。
在A区域的值邻近于(i,j)点,所以都将(i,j)点的像素值赋予在A区域的所有像素,同理可得其他的区域。如下图:由最邻近插值法,放大后的图像有很严重的马赛克,会出现明显的块状效应;缩小后的图像有很严重的失真
具体的来说,就是将目标图像中的点,对应到原图像中后,找到最相邻的整数坐标点的像素值,作为该点的像素值输出。
如何寻找四个点
最近邻法实际上是不需要计算新图像矩阵中点的数值的,直接找到原图像中对应的点,将数值赋值给新图像矩阵中的点,根据对应关系找到原图像中的对应的坐标,这个坐标可能不是整数,这时候找最近的点进行插值。对应关系如下: