关于OpenCV的上采样和下采样
下采样(subsampled)(或称为缩⼩图像 或降采样(downsampled))的主要⽬的有两个:1、使得图像符合显⽰区域的⼤⼩;2、⽣成对应图像的缩略图(最直观的理解,所以深度学习领域对被卷积核之后的特征图叫下采样,从尺⼨⾓度来看,⼤部分确实会缩⼩尺⼨)。
反腐倡廉制度
上采样(upsampling) (或称为放⼤图像(分割领域,GAN领域直观理解的尺⼨也是扩⼤了) 或图像插值(interpolating))的主要⽬的是放⼤原图像,从⽽可以显⽰在更⾼分辨率的显⽰设备上。对图像的缩放操作并不能带来更多关于该图像的信息, 因此图像的质量将不可避免地受到影响。然⽽,确实有⼀些缩放⽅法能够增加图像的信息,从⽽使得缩放后的图像质量超过原图质量的。
下采样原理:对于⼀幅图像I尺⼨为M*N,对其进⾏s倍下采样,即得到(M/s)*(N/s)尺⼨的得分辨率图像,当然s应该是M和N的公约数才⾏,如果考虑的是矩阵形式的图像,就是把原始图像s*s窗⼝内的图像变成⼀个像素,这个像素点的值就是窗⼝内所有像素的均值。
上采样原理:图像放⼤⼏乎都是采⽤内插值⽅法,即在原有图像像素的基础上在像素点之间采⽤合适的插值算法插⼊新的元素。
南方人物周刊>四字歌⽆论缩放图像(下采样)还是放⼤图像(上采样),采样⽅式有很多种。如最近邻插值,双线性插值,
均值插值,中值插值等⽅法。在AlexNet中就使⽤了较合适的插值⽅法。各种插值⽅法都有各⾃的优缺点。
==========================================
插值算法分类
对插值算法分类⽐较混乱,各⼈有各⼈的分类算法。⽂献《图像插值技术综述》中简略的将插值算法分为传统插值、 基于边缘的插值和基于区域的插值3类,作为初学者⼊门明晰插值算法还是有帮助。
1.传统差值原理和评价
在传统图像插值算法中,邻插值较简单,容易实现,早期的时候应⽤⽐较普遍。但是,该⽅法会在新图像中产⽣明显的锯齿边缘和马赛克现象。双线性插值法具有平滑功能,能有效地克服邻法的不⾜,但会退化图像的⾼频部分,使图像细节变模糊。在放⼤倍数⽐较⾼时,⾼阶插值,如双三次和三次样条插值等⽐低阶插值效果好。这些插值算法可以使插值⽣成的像素灰度值延续原图像灰度变化的连续性,从⽽使放⼤图像浓淡变化⾃然平滑。但是在图像中,有些像素与相邻像素间灰度值存在突变,即存在灰度不连续性。这些具有灰度值突变的像素就是图像中描述对象的轮廓或纹理图像的边缘像素。在图像放⼤中,对这些具有不连续灰度特性的像素,如果采⽤常规的插值算法⽣成新增加的像素,势必会使放⼤图像的轮廓和纹理模糊,降低图像质量。
2.基于边缘的图像插值算法
为了克服传统⽅法的不⾜, 提出了许多边缘保护的插值⽅法,对插值图像的边缘有⼀定的增强, 使得图像的视觉效果更好, 边缘保护的插值⽅法可以分为两类: 基于原始低分辨图像边缘的⽅法和基于插值后⾼分辨率图像边缘的⽅法。基于原始低分辨率图像边缘的⽅法:( 1)⾸先检测低分辨率图像的边缘, 然后根据检测的边缘将像素分类处理, 对于平坦区域的像素,采⽤传统⽅法插值;对于边缘区域的像素, 设计特殊插值⽅法, 以达到保持边缘细节的⽬的。(2)基于插值后⾼分辨率图像边缘的⽅法这类插值⽅法:⾸先采⽤传统⽅法插值低分辨率图像,然后检测⾼分辨率图像的边缘,最后对边缘及附近像素进⾏特殊处理, 以去除模糊, 增强图像的边缘。
王者荣耀空白名字3.基于区域的图像插值算法
⾸先将原始低分辨率图像分割成不同区域,然后将插值点映射到低分辨率图像, 判断其所属区域, 最后根据插值点的邻域像素设计不同的插值公式, 计算插值点的值。
===============================================
具体的常⽤差值⽅法:
代收款证明1、最邻近元法
这是最简单的⼀种插值⽅法,不需要计算,在待求象素的四邻象素中,将距离待求象素最近的邻象素灰度赋给待求象素。设i+u, j+v(i, j 为正整数, u, v为⼤于零⼩于1的⼩数,下同)为待求象素坐标,则待求象素灰度的值 f(i+u, j+v) 如下图所⽰:
如果(i+u, j+v)落在A区,即u<0.5, v<0.5,则将左上⾓象素的灰度值赋给待求象素,同理,落在B区则赋予右上⾓的象素灰度值,落在C区则赋予左下⾓象素的灰度值,落在D区则赋予右下⾓象素的灰度值。
最邻近元法计算量较⼩,但可能会造成插值⽣成的图像灰度上的不连续,在灰度变化的地⽅可能出现明显的锯齿状。
2、双线性内插法
西汉建立的时间
双线性内插法是利⽤待求象素四个邻象素的灰度在两个⽅向上作线性内插,如下图所⽰:
对于 (i, j+v),f(i, j) 到 f(i, j+1) 的灰度变化为线性关系,则有:
f(i, j+v) = [f(i, j+1) - f(i, j)] * v + f(i, j)
同理对于 (i+1, j+v) 则有:
f(i+1, j+v) = [f(i+1, j+1) - f(i+1, j)] * v + f(i+1, j)
从f(i, j+v) 到 f(i+1, j+v) 的灰度变化也为线性关系,由此可推导出待求象素灰度的计算式如下:
f(i+u, j+v) = (1-u) * (1-v) * f(i, j) + (1-u) * v * f(i, j+1) + u * (1-v) * f(i+1, j) + u * v * f(i+1, j+1)
学做红烧肉双线性内插法的计算⽐最邻近点法复杂,计算量较⼤,但没有灰度不连续的缺点,结果基本令⼈满意。它具有低通滤波性质,使⾼频分量受损,图像轮廓可能会有⼀点模糊。
3、三次内插法
该⽅法利⽤三次多项式S(x)求逼近理论上最佳插值函数sin(x)/x, 其数学表达式为:待求像素(x, y)的灰度值由其周围16个灰度值加权内插得到,如下图:
待求像素的灰度计算式如下:
f(x, y) = f(i+u, j+v) = ABC
其中:
中国城市名单三次曲线插值⽅法计算量较⼤,但插值后的图像效果最好。
参考: