图像处理理论和应用---图像预处理技术

图像预处理技术
图像处理的形式
• 按图像处理的输入和输出形式,图像处理的基本功能可分为以下几种形式:
• 单幅图像输入,进行处理,输出单幅图像。
• 多幅图像输入,进行处理,输出单幅图像。
• 单幅图像输入,进行处理,输出数字或符号等内容。
• 多幅图像输入,进行处理,输出数字或符号等内容。
• 对于人工智能方向的图像处理任务,最终的处理结果通常是代表具体内容的数字或者符号。所以上述前两种仍然输出图像的处理方法被统称为图像预处理。

图像预处理
• 图像预处理的主要目的是消除图像中无关的信息,恢复有用的真实信息,增强有关信息的可检测性、最大限度地简化数据,从而改进特征提取、图像分割、匹配和识别的可靠性。
• 图像预处理的流程主要包括:灰度变换,几何矫正,图像增强,图像滤波等操作。
在这里插入图片描述

灰度变换
在这里插入图片描述

在这里插入图片描述

• 下面介绍几种典型的灰度变换映射函数。

反转
• 图像反转是将原图灰度值反转的操作,简单说就是将黑色变为白色,白色变为黑色。映射函数的图示如下:

在这里插入图片描述

对比度增强
在这里插入图片描述
在这里插入图片描述

对比度压缩
在这里插入图片描述
在这里插入图片描述

伽马矫正
• 伽马矫正是一种借助了指数变换映射的增强技术。
在这里插入图片描述

• 如下图所示:
在这里插入图片描述

• 高灰度范围被拉伸,实现了强化亮部,
• 压缩暗部的图像增强效果;
在这里插入图片描述

• 低灰度范围被拉伸,实现了强化暗部,
• 压缩亮部的图像增强效果;
在这里插入图片描述

• 大部分图像捕捉设备在保存图片时会自动加上伽马校正,也就是说图片中存储的是非线性空间中的颜色(gamma值为2.2时的称之为sRGB空间)。
• 图像捕捉设备的输入能量和图片的颜色亮度之间的关系是线性的,而显示器的输入能量和图片的颜色亮度之间的关系是非线性。因此我们需要对图像进行非线性矫正(伽马矫正)后,再将图像输出到显示屏。
在这里插入图片描述
在这里插入图片描述

• 原图其实已经进行了一次伽马矫正,如果再手动进行一次伽马校正,则会导致纹理过亮(暗),因为我们进行了两次伽马校正。

直方图
• 灰度直方图反映的是一幅图像中各灰度级像素出现的频率。以灰度级为横坐标,纵坐标为灰度级出现的频率,绘制频率同灰度级的关系图就是灰度直方图。它是图像的一个重要特征,反映了图像灰度分布的情况。
• 使用直方图进行图像变换是一种基于概率论的处理方法,通过改变图像的直方图,修改图像中各像素的灰度值,达到增强图像视觉效果的目的。
• 相对于灰度变换只针对单独的像素点操作,直方图变换综合考虑了全图的灰度值分布。

灰度图像的直方图
• 下面是两幅灰度图像的直方图,直方图的形状能反映图像的视觉效果。
在这里插入图片描述

彩色图像各通道的直方图
• 对于彩色图像,可以对不同的通道分别统计直方图
在这里插入图片描述

直方图的计算
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

直方图均衡化
• 直方图均衡化是调整原始图像的直方图,即灰度概率分布图,使之呈均衡分布的样式,以达到灰度级均衡的效果,可以有效增强图像的整体对比度。
• 直方图均衡化能够自动地计算变换函数,并产生有均衡直方图的输出图像。能够有效增强改善图像过暗、过亮和细节不清晰的问题。
• 在常用的图像处理库中,直方图操作都有API直接调用实现。
在这里插入图片描述

• 左上为原图,左下为原图直方图 右上为直方图均衡化结果 右下为处理后的直方图

直方图规定化
• 直方图均衡化总是得到全局均衡化的输出图像,但实际应用中经常需要对某些特定的灰度区间进行增强,如提升暗部或增强亮部。使用直方图规定化的方法可以按需要灵活地对直方图的分布进行调整。这种定制化调整是直方图规定化的特点。
• 直方图规定化的方法也是调整原始图像的直方图,使得其概率分布逼近目标直方图的概率分布。
• 使用直方图规定化的方法,需先根据经验知识,计算最合适的目标直方图,与原始图像一起作为输入,输出为规定化之后的图像,从而达到特定的图像增强效果。
在这里插入图片描述

• 左上为原图 左下为规定化模板,限制灰度值不要太高避免图像太亮
• 右上为规定化结果,右下为结果直方图。和均衡化对比看到天空的细节更清晰

空间滤波
• 灰度变换是点处理,它的输出值只和指定像素点相关;直方图变换是全局处理,它的输出值和整幅图像相关。
在这里插入图片描述

在这里插入图片描述

• 常用的模板运算有模板卷积和模板排序。

模板运算
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

均值滤波
• 均值滤波指模板权重都为1的滤波器。它将像素的邻域平均值作为输出结果,均值滤波可以起到图像平滑的效果,可以去除噪声,但随着模板尺寸的增加图像会变得更为模糊。经常用于图像模糊化。
在这里插入图片描述

高斯滤波
• 为了减少模板尺寸增加对图像的模糊化,可以使用高斯滤波器,高斯滤波的模板根据高斯分布来确定模板系数,接近中心的权重比边缘的大。5*5的高斯滤波器如下所示:
在这里插入图片描述

中值滤波
• 中值滤波属于模板排序运算的滤波器。中值滤波器将邻域内像素排序后的中位数值输出以代替原像素值。它不仅能实现降噪,而且保留了原始图像的锐度,不会修改原始图像的灰度值。
• 中值滤波的使用非常普遍,它对椒盐噪声(salt & pepper noise)的抑制效果很好,在抑制随机噪声的同时能有效保护图像边缘信息。但中值滤波是一种非线性变化,它可能会破坏像素点的线性关系,不适用于点、线等细节较多的图像或高精度的图像。
在这里插入图片描述

• 椒盐噪声是由图像传感器,传输信道,解码处理等产生的黑白相间的亮暗点噪声。椒盐噪声是指两种噪声,一种是盐噪声(salt noise),另一种是胡椒噪声(pepper noise)。盐=白色,椒=黑色。前者是高灰度噪声,后者属于低灰度噪声。一般两种噪声同时出现,呈现在图像上就是黑白杂点。

图像锐化
• 锐化处理的主要目的是突出图像中的边缘、轮廓线和图像细节。
• 图像锐化法最常用的是梯度法。对于离散图像的梯度,一阶偏导数采用一阶差分近似表示,即
在这里插入图片描述

• 模板表示为:
在这里插入图片描述

• 类似地,二阶差分:
在这里插入图片描述

边缘检测
• 图像边缘是图像的最基本特征,是图像分割所依赖的最重要特征。
• 边缘检测算子主要有:
• 一阶梯度:Prewitt梯度算子、Sobel梯度算子。
• 二阶梯度:Laplacian梯度算子。
在这里插入图片描述

• Laplacian算子:第一个kernel:四领域。第二个kernel:八领域。

边缘检测效果
在这里插入图片描述

图像锐化实现
• 将求取的边缘按照一定系数比例叠加到原始图像上,即可实现对图像的锐化操作。例如使用Laplacian梯度算子作为锐化操作的模板,其中A是大于等于1的系数:
在这里插入图片描述

坐标变换
• 图像的坐标变换又被称为图像的几何计算,常见的基本变换包括:图像的平移、旋转、镜像、缩放等。
• 图像的坐标变换都可以通过坐标向量和变换矩阵的乘法操作实现。
在这里插入图片描述

在这里插入图片描述

平移
在这里插入图片描述

• 示例:
在这里插入图片描述

镜像
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

旋转
• 图像的旋转可以看作是围绕一根垂直于图像屏幕的轴线将像素点进行旋转。
在这里插入图片描述

在这里插入图片描述

• 如果旋转轴不处于原点,变换矩阵的计算将较为复杂,可借助平移变化来简化操作:1)通过平移变化将旋转轴移动到原点,2)进行旋转轴为原点的旋转变换,3)再通过平移变化将旋转轴恢复到原始位置。
• 示例:
在这里插入图片描述

缩放
在这里插入图片描述

在这里插入图片描述

• 示例:在这里插入图片描述

插值
在这里插入图片描述

在这里插入图片描述

• 最邻近插值法计算量小,但是精确度不高,并且可能破坏图像中的线性关系。为了提高精度,可使用双线性插值法。

在这里插入图片描述

最邻近插值vs双线性插值
• 双线性插值的灰度值:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

仿射变换
• 仿射变换是在二维平面对图像进行线性坐标变换的方法,即对图像进行线性变换和平移,包括了图像平移、缩放、旋转、镜像等。仿射变换保留了图像中的 “平行性”和“平直性”,即仿射变换后直线和平行线仍然保持是直线和平行线。变换公式为:
在这里插入图片描述

• 二维码畸变修正示例:
在这里插入图片描述

透视变换
• 因为实际生活中的空间是三维的,图像中的畸变存在近大远小的特征,仿射变换不能进行修正。这时需要使用到三维空间的变换,即透视变换。透视变换是一种非线性变化。

在这里插入图片描述

• 文档畸变修正示例:
在这里插入图片描述

彩色图像处理
• 彩色图像的每个像素点都有多个通道,例如RGB图像中每个像素有(r,g,b)三个值。对于多通道图像的处理,有两种思路:
• 一种是将其看作多幅单通道图像的组合体,处理过程中对每个通道的图像单独处理,最后再将每个通道的结果合成为一副彩色图像。
• 另一种是把每个像素看做一个多维度的向量。直接用向量的表达方式进行图像处理。
• 两种处理方式都十分常用并适合于不同的算法。在复杂的图像处理任务中,两种模式经常切换使用。

单通道处理
• 数字图像处理中最通用的颜色空间是RGB颜色空间,在处理彩色图像时,可以将R,G,B三通道进行分离,对三个通道分别进行前面介绍的预处理操作。
在这里插入图片描述

• 由于人眼对HSV空间的三个分量的感受是独立的,可以对HSV单独的分量图进行处理达到图像增强的目的。

色调增强
• 对HSV空间的H分量进行处理可以实现对图像色调的增强。
• 色相H的值对应的是一个角度,并且在色相环上循环。所以色相的修正可能会造成颜色的失真。
• 色相的调整通常在H原始值上加上一个小的偏移量,使其在色相环上有小角度的调整。调整后,图像的色调会变为冷色或者暖色。
在这里插入图片描述

饱和度增强
• 对HSV空间的S分量进行处理可以实现图像饱和度的增强。
• 饱和度的调整通常是在S原始值上乘以一个修正系数。
• 修正系数大于1,会增加饱和度,使图像的色彩更鲜明;
• 修正系数小于1,会减小饱和度,使图像看起来比较平淡。
在这里插入图片描述

亮度增强
• 对HSV空间的V分量进行处理可以实现图像亮度的增强。
• 直接将彩色图像灰度化,也可以得到代表图像亮度的灰度图,计算量比HSV颜色空间变换低,但在HSV空间中进行亮度增强处理可以得到增强后的彩色图像。
在这里插入图片描述

图像预处理技术在深度学习中的应用
• 对于深度学习的图像处理算法,在处理过程中通常不需做预处理。但是图像预处理技术被用于训练数据集的数据增强(data augmentation),又称数据扩充。
• 在数据中加入随机噪声,扩大数据集样本量,提升数据样本空间的复杂度,主要应用在图像处理任务里。
• 图像数据增强常用方法:缩放,拉伸,加入噪点,翻转,旋转,平移,剪切,对比度调整和通道变换。

图像数据增强
在这里插入图片描述