参考链接
参考资料:
直方图均衡化:https://blog.csdn.net/weixin_40163266/article/details/113802909
膨胀与腐蚀:https://blog.csdn.net/Fishmemory/article/details/53113746
顶帽和黑帽:https://blog.csdn.net/qq_55025358/article/details/124221743
1.前言
图像预处理是指在图像分析和处理之前对图像进行的一些预处理操作,旨在提高图像处理的效果和精度。
主要的图像预处理方式如下:
- 图像去噪:通过滤波器等方式去除图像中的噪声,例如均值滤波、中值滤波、高斯滤波等。
- 图像增强:通过调整图像的对比度、亮度等参数,增强图像的细节信息,例如直方图均衡化、CLAHE(对比度有限自适应直方图均衡化)等。
- 图像尺寸调整:调整图像的大小,适应不同的应用场景和需求,例如缩放、裁剪等。
- 图像旋转和翻转:调整图像的角度和方向,例如旋转、水平翻转、垂直翻转等。
- 图像平移和仿射变换:调整图像的位置和形状,例如平移、缩放、扭曲等。
- 图像配准:将多张图像进行对齐和融合,以提高图像质量和信息的提取效率。
- 图像分割:将图像分成多个子区域,以便更好地进行后续处理,例如基于阈值、边缘检测、聚类等方法的图像分割。
- 图像去除背景:通过去除图像中的背景信息,以便更好地进行目标检测和识别。
- 色彩空间变换:常见的色彩空间包括RGB、HSV、YUV、Lab等。
- 边缘检测:检测图像中的边缘信息,例如Canny算法、Sobel算法、Prewitt算法等。
- 形态学操作:基于形态学理论,对图像进行形态学操作,例如膨胀、腐蚀、开操作、闭操作等。
- 直线和圆检测:检测图像中的直线和圆信息,例如Hough变换。
- 特征提取:提取图像中的特征信息,例如SIFT(尺度不变特征变换)、HOG(方向梯度直方图)等。
2.直方图均衡化
1.直方图概念
图像的灰度直方图就描述了图像中灰度分布情况, 能够很直观的展示出图像中各个灰度级所占的多少。图像的灰度直方图是灰度级的函数, 描述的是图像中具有该灰度级的像素的个数: 其中, 横坐标是灰度级, 纵坐标是该灰度级出现的率。如下图所示
2.直方图性质
- 直方图反映了图像中的灰度分布规律。 它描述每个灰度级具有的像素个数, 但不包含这些像素在图像中的位置信息。像直方图不关心像素所处的空间位置, 因此不受图像旋转和平移变化的影响, 可以作为图像的特征。
- 任何一幅特定的图像都有唯一的直方图与之对应, 但不同的图像可以有相同的直方图。
- 如果一幅图像有两个不相连的区域组成, 并且每个区域的直方图已知, 则整幅图像的直方图是该两个区域的直方图之和。
3.直方图应用
下图是四种常见的直方图的灰度分布规律
如果需要将上图中灰度偏暗、偏亮或偏集中的直方图调整为灰度均匀分布的直方图,就需要用到直方图均衡化算法。
4.直方图均衡化
直方图均衡化(Histogram Equalization)是一种增强图像对比度(Image Contrast)的方法,其主要思想是将一副图像的直方图分布通过累积分布函数变成近似均匀分布,从而增强图像的对比度。为了将原图像的亮度范围进行扩展, 需要一个映射函数, 将原图像的像素值均衡映射到新直方图中, 这个映射函数有两个条件:
①不能打乱原有的像素值大小顺序, 映射后亮、 暗的大小关系不能改变;
② 映射后必须在原有的范围内,即像素映射函数的值域应在0和255之间;
综合以上两个条件,累积分布函数是个好的选择,因为累积分布函数是单调增函数(控制大小关系),并且值域是0到1(控制越界问题),所以直方图均衡化中使用的是累积分布函数。
直方图均衡化步骤
①依次扫描原始灰度图像的每一个像素, 计算出图像的灰度直方图;
②计算灰度直方图的累积分布函数;
③根据累积分布函数和直方图均衡化原理得到输入与输出之间的映射关系。
④最后根据映射关系得到结果进行图像变换
3.形态学操作
1.腐蚀
结构A被结构B腐蚀的定义为,
可以理解为,移动结构B,如果结构B与结构A的交集完全属于结构A的区域内,则保存该位置点,所有满足条件的点构成结构A被结构B腐蚀的结果。
(结构A腐蚀后的图,好像应该没有最上面那个方块)
2.膨胀
结构A被结构B膨胀的定义为,
可以理解为,将结构B在结构A上进行卷积操作,如果移动结构B的过程中,与结构A存在重叠区域,则记录该位置,所有移动结构B与结构A存在交集的位置的集合为结构A在结构B作用下的膨胀结果。
图示中红色框内的区域表示结构A在结构B的作用下膨胀的结果。
3.开操作
先腐蚀后膨胀的操作称之为开操作。它具有消除细小物体,在纤细处分离物体和平滑较大物体边界的作用。
采用上图的结构B对原件进行开操作,
4.闭操作
先膨胀后腐蚀的操作称之为闭操作。它具有填充物体内细小空洞,连接邻近物体和平滑边界的作用。
采用上图的结构对原件进行闭操作,
5.形态学梯度
之所以称为形态学梯度是因为一般的获得边缘方式是通过sobel算子计算梯度获得,而这种获得梯度的方式是通过膨胀减腐蚀获得边缘,是通过形态学操作的方式获得边缘。
6.顶帽和黑帽
顶帽操作是用原图像减去开运算的图像
一般用于提取图象中的高亮部分,因为开操作会消除高亮部分,用原图像减去开操作后的图像就会得到高亮部分的图像
黑帽操作是用闭运算的图像减去原图像
一般用于提取低亮部分的图像,因为闭操作会消去细小的低亮部分,用低亮部分的图像减去原图像获得低亮部分的图像