Eden寒假日更_01——图像预处理
Eden寒假日更系列如约开启,今天学习了计算机视觉方面图像预处理的部分知识。
(ps:昨日招聘状态:简历筛选→简历评估 内心os:慢点评估吧,越晚面就越能多巩固点!!)
图像显示及存储
主流颜色空间:RGB加色模型(红绿蓝)、CMY(K)减色模型(四维)、HSV面向用户颜色模型(色调、饱和度、明度)、CIE-XYZ颜色空间(红绿蓝波长直接测定,基础)。
图片存储方式:三维矩阵——长、宽、通道(RGB三通道、CMYK四通道等)
RGB三通道转单通道灰度:GRAY=0.3R+0.59G+0.11*B
图片格式:BMP(位映射,像素点对应数据)、JPG(有损压缩)、GIF(LWZ编码无损压缩)、PNG(无损压缩)等。
图像增强
图像增强一般可分成两大类:频率域法和空间域法。前者把图像看成一种二维信号,对其进行基于二维傅里叶变换的信号增强,在图像的某种变换域内对图像的变换系数值进行某种修正,是一种间接增强的算法。后者在进行算法处理时直接对图像灰度级做运算,是一种直接增强的方式。废话不多说,下面都会分别对它们进行简单阐述。
空间域法
空间域法中主要包含点运算、形态学运算和邻域运算这几种不同的处理方法。
点运算(AHE、CLAHE)
点运算中最基本的方法是直方图处理(Histogram)。简单来说,就是对图片数据和特征分布的一种统计方法,统计指标一般包括以下几个方面:
- 灰度、颜色值
- 梯度、边缘、形状、纹理
- 局部特征点、视觉特征描述
完成统计之后会形成对图片数据空间的量化,下面就是一张灰度值统计直方图:
得到了数据量化后的直方图,我们就能进行下一步操作:直方图均衡化(HE)。它指的是,利用图像直方图对对比度进行调整,通常可以用来增加许多图像局部的对比度,均衡化之后,亮度可以更好地在直方图上进行分布(可以看作有效扩展常用亮度)。比如,一张图片非常暗或者非常亮,我们可以通过均衡化地方法对其进行处理,让图片亮度变得没那么突兀,增强整体视觉效果。下面就是直方图均衡化拉伸操作的一个效果展示:
诸如拉伸、收缩这样的经典处理,对图片整体的像素都会产生相同的影响,如果图片只是局部亮度很突出,那么就必须使用新的均衡化方法,比如自适应直方图均衡化(AHE),它的主要步骤如下:
- 自定义值变化模板,选择自定步长,在原始图片上移动模板(选择分块)
- 每次移动后再模板区域内进行直方图均衡操作(自设值变化),变化后结果赋给模板区域内所有点(分块均衡)
- 根据步长大小,每个点会有不同程度的多次赋值,最终取值则为这些赋值的均值
AHE虽然能对图片局部进行调整,但是也可能过度放大图片中相对均匀区域的噪音,所以通常情况下会采用限制对比度自适应直方图均衡(CLAHE),它与AHE不同的地方在于均衡化之前,多了一个直方图修剪的过程,使得图片局部对比度受到限制而提升整体性(其余步骤完全一样):
AHE和CLAHE都会遇到分块后,块与块之间色彩不连续的问题,一般会使用插值的方式去处理(这里不过多展开)。这两种均衡算法的效果展示如下:
形态学运算(膨胀、腐蚀)
这里简单提两句,膨胀指的是根据模板对图像中的高亮部分进行膨胀,类似于领域扩展,腐蚀则是指根据模板对图像的高亮部分进行腐蚀,类似于领域被吞没。
腐蚀和膨胀可以形成两种运算:开运算(先腐蚀再膨胀)和闭运算(先膨胀再腐蚀),它们分别可以有效地去除目标外、内的孤立点(一般为噪点)。
邻域运算(卷积/滤波)
卷积和滤波的意义基本相同,都可以看作是卷积函数(核)对像素邻域值进行的运算,这里贴出几张经典图片,具体原理就不多讲了(可以简单看作相乘相加):
在卷积操作中,如果想要活动与原图相同尺寸的输出,需要根据卷积核的大小,对原图进行边界填充(Padding),通常情况下可以进行补零、边界复值、块复制、镜像复制等多种填充方式。这其中最常用的padding方式其实还是补零。
常见的滤波类型:
平滑均值滤波:卷积核内元素全是1,乘完了之后再求个平均。这样既没有很好地去噪,也破坏了图像的细节,反而使图像变得更加模糊。
平滑中值滤波:将卷积域内的像素值从大到小进行排序,取中间值作为卷积输出,能够有效去除椒盐噪点,它的原理及效果如下:
梯度Sobel滤波:Sobel滤波是一种典型的用于边缘检测的线性滤波方式,它具有水平梯度和垂直梯度两种模式,其结构如下所示:
水平梯度模式下,如果垂直方向两边的数值相差较大(出现边缘差异),那么其相乘累加会形成更大的数值,从而使得边缘形状更加突出,所以它通常用来检测垂直边缘,而垂直梯度模式则与之相反,用来检测水平边缘。
高斯滤波(模糊)与拉普拉斯滤波:高斯滤波是通过调整卷积参数坐标xy和标准差σ进行的一种滤波操作,σ越小,滤波后的关注区域就越集中,它能够模拟人眼,关注中心区域,有效去除高斯噪声。拉普拉斯滤波是一种二阶微分的滤波方式,它主要是用于检测凹陷、突出块的检测和边缘检测。
高斯滤波和拉普拉斯滤波会涉及到图像上下采样的很多知识,一时半会儿根本说不完。之后一定会更一篇专门讲图像采样与滤波的博客,把这些都梳理清楚,这里就先一笔带过了。
其他滤波方式:诸如实现水平位移、翻转、锐化等基本增强手段的滤波方式,就是原图与一些特殊的卷积核相乘累加的过程,没什么可解释的,这里就提出一张例图吧:
频率域法
图像增强中频率域法主要包括傅里叶变换和小波变换,想要透彻了解其内容可以去钻研数字信号处理相关的内容,本人上学期已经被折磨得快不行了。
针对频段的滤波方式通常有高/低通滤波、特定频段滤波、相位滤波等滤波方式,这里贴几张效果图吧。
以上几种针对原图的变换,都是原图在经过快速傅里叶变换(FFT)或者小波变换之后,在原图频域中对频率和相位角进行调整(删除、移动)并进行逆变换的结果,所以我们在空间域中很难复刻这样的操作,这就凸显了图像增强手段中频率域法的特殊性和它在某些时候的优越性。
需要特别注意的是,在图像增强中如果涉及到傅里叶变换,一般都会使用**快速傅里叶变换(FFT)**来代替,这样能省去很多的计算次数,效果也基本一致,使得频率域法相对空间域法更具有时间成本上的优势。如果使用标准的傅里叶变换进行频域转化的话,会大大增加时间成本,得不偿失,还不如老老实实自己设计特殊的卷积核呢。
图像预处理综合案例
现在凭借编程语言的各种第三方库,实现起来非常简单,等所有基础知识掌握之后再更吧!
从博客内容就能看出,本人知识掌握得不好,所以还望各位多多批评指正!