一、边缘检测步骤:
1.图像滤波-------使用滤波器来改善与噪声有关的边缘检测器的性能
2.图像增强-------增强边缘的基础是确定图像各点邻域强度的变化值。增强算法可以将邻域强度值有显著变化的点突出显示
3.图像检测-------有许多不是边缘的点的梯度幅值比较大,使用梯度幅值阈值判断哪些是边缘点
4.图像定位-------边缘的位置可以在子像素分辨率上来估计,边缘的方位也可以被估计出来
二、边缘检测方法:
1.传统边缘检测算子
1.1.基于灰度直方图的边缘检测
直方图是表示依附图像灰度分布的情况的统计特性图表, 从数学上来说图像直方图是图像各灰度值统计特性与图像灰度值的函数, 它统计一幅图像中各个灰度级出现的次数或概率, 从图形上来说, 它是一个二维图, 横坐标表示图像中各个像点的灰度级, 纵坐标为各个灰度级上图像各个像素点出现的次数或概率。图像的灰度直方图简称直方图。直方图是用一系列宽度相等、高度不等的矩形表示数据的分布的图形。矩形的宽度表示数据范围的间隔, 矩形的高度表示在给定间隔内的数据频数。
1.2.基于梯度的边缘检测
(1) Roberts边缘算子
Roberts边缘检测算子是根据任意一对互相垂直方向上的差分可用来计算梯度的原理,采用对角线方向相邻像素之差。Roberts边缘检测算子采用对角线方向相邻像素之差近似检测边缘,定位精度高,在水平和垂直方向效果较好,但对噪声敏感。
(2) Sobel边缘检测算子
将图像中的每个像素的上、下、左、右四邻域的灰度值加权差,与之接近的邻域的权最大。Sobel算子利用像素的上、下、左、右邻域的灰度加权算法,根据在边缘点处达到极值这一原理进行边缘检测。该方法不但产生较好的检测效果,而且对噪声具有平滑作用,可以提供较为精确的边缘方向信息。但是,在抗噪声好的同时增加了计算量,而且也会检测伪边缘,定位精度不高。如果检测中对精度的要求不高,该方法较为常见。
(3) Prewitt边缘算子
(4)Laplacan边缘算子
Laplacan算子是二阶微分算子,它具有旋转不变性,即各向同性的性质。数字图像函数的拉普拉斯算法也是借助各种模板卷积实现的。这里对模板的基本要求是对应中心像素的系数应是正的,而对应中心像素临近像素的系数应是负的,且所有系数的和应该是零,这样不会产生灰度偏移,实现拉普拉斯运算的几种模板见图。
拉普拉斯边缘算子的缺点是:由于为二阶差分,双倍加强了噪声的影响;另外它产生双像素宽的边缘,且不能提供边缘方向的信息,因此,拉普拉斯算子很少直接用于边缘检测,而主要用于已知边缘像素,确定该像素是在图像的暗区还是在明区。其优点是各向同性,不但可以检测出绝大部分边缘。
2.Canny边缘检测算子
Canny算子的基本思想是先将图像使用高斯函数Gauss进行平滑,再由一阶微分的极大值确定边缘点。二阶微分的零交叉点不仅对应着一阶导数的极大值,而且也对应着一阶导数的极小值。换句话说,图像中灰度变化剧烈的点与变化缓慢的点都对应着二阶导数零交叉点。因此,Canny算子可能会引入伪边缘点。
步骤:
高斯平滑滤波器卷积降噪----->计算梯度幅值和方向------>非极大值抑制(NMS)------>双线性阈值
高斯平滑函数:
计算梯度幅值和方向以达到边缘增强的效果:
非极大值抑制:为了保留梯度方向上的最大值
双线性阈值:
Ⅰ.如果某一像素位置的幅值超过高阈值, 该像素被保留为边缘像素。
Ⅱ.如果某一像素位置的幅值小于低阈值, 该像素被排除。
Ⅲ.如果某一像素位置的幅值在两个阈值之间,该像素仅仅在连接到一个高于高阈值的像素时被保留。
改进:
《一种基于梯度直方图的自适应边缘检测算法_程瑞》
论文研究整体总结如下:
(1)针对不同的噪声,应该选择对应的滤波方式。在滤波方法上,相对于传统算法中的高斯滤波,通过实验研究对比了中值滤波和自适应中值滤波,验证了这两种滤波方式在处理脉冲噪声时效果更好,同时自适应中值滤波更符合算法对自适应性的要求。
(2)四方向梯度计算比二方向梯度计算更具优势。在梯度计算步骤,通过实验对比验证了本文使用的四方向计算方式能够在更好的抑制噪声的同时,保留更多的图像细节,对边缘像素点的漏判更少。
(3)本文的自适应双阈值选择算法能选取合适的阈值。在双阈值的选择上,本文对Otsu 算法进行了进一步推导,得到了双阈值 Otsu 算法,并将其应用在非极大值抑制后的梯度直方图中。不过实验发现该算法并不能很好地获取理想的双阈值,对此本文提出了两种可行的改进方案,这两种方案都是使用平均每梯度非零像素点个数来限制高阈值取值范围。最终实验证明,两种方案都能取得较好的结果,其中方案三能保留更多边缘,同时结合方案二来限制高阈值的下限更能保证高阈值选取范围合理。
(4)算法实现步骤和方式会对边缘检测结果有一定影响。在算法的具体实现上,通过一系列的对比实验及分析,对算法各步骤存在的问题进行了调整改进,使得算法更符合预期。
改进后的算法流程图:
(1)使用合适的滤波器来取代传统 Canny 算法中的高斯滤波。中值滤波对脉冲噪声的去除效果明显优于高斯滤波;而自适应中值滤波对脉冲噪声的去除效果更胜中值滤波,并且对图像细节的保护效果更好。
(2)四方向梯度计算比二方向梯度计算更具优势。增加两个方向,45°和 135°
(3)对各像素点梯度进行非极大值抑制,更精确定位边缘像素点。
(4)基于梯度直方图的双阈值 Otsu 算法。
(5)使用上一步获得的高、低阈值进行边缘连接,得到边缘检测结果。
《图像边缘检测及模式识别技术研究_吕彦诚》
通过分析传统 Canny算子中高斯滤波器参数以及阈值设置需要人工参与的缺陷,引入了改进的自适应小波阈值去噪算法以及OTSU自适应阈值,同时为解决常见去噪算法对椒盐噪声效果不显著的缺陷,提出对小波阈值去噪图像进行自适应中值滤波操作,提高边缘检测算法对噪声的抑制能力以及自适应能力;为实现图像边缘的矢量化,在充分考虑已知边界点对后续边界点的影响基础上,提出了一种基于优先搜索方向的边界跟踪算法,实现了图像区域边界跟踪并抑制了噪声点和断边现象。
3.LOG 检测算子法
先对图象平滑,后拉氏变换求二阶微分,等效于把拉氏变化作用于平滑函数,得到一个兼有平滑和二阶微分作用的模板,再与原来的图象进行卷积。
该算子的基本思路是对噪声进行最小化处理并且从平滑的图像中提取边缘。该算法优点在于能够对边界精确定位,变化不明显的边界也能够识别出来,并且不易受噪声的干扰。缺点在于容易忽略区域边界的细节,在进行滤波时容易对边缘点误检,需要确认边缘的检测结果。
LOG 检测算子对于噪声的抑制能力没有Canny 算子强,Canny 算子的边缘检错率较高,即使一些边缘处的对比度比较弱。在相同条件下,LOG 算子可以检测到比Canny算子更多的细节,而 Canny 运算符需要使用更大的滤波器,才能获得更好的检测结果,这样就容易忽略细节。
4.模糊推理的边缘检测
一些灰度值值较小的边缘信息容易丢失,计算也比较复杂。
《灰度图像的边缘检测算法研究_张金波》:
提出了基于模糊理论的快速边缘检测算法:使用一个简单形式的二次方隶属函数降低算法的运算复杂度,并降低转换函数的迭代次数从而减少边缘信息的损失。实验仿真结果表明,改进后的算法在误差率稍有增长的基础上极大降低了运算复杂度。
5.Mallat小波边缘检测算子
Mallat小波边缘检测算子是Mallat在1992年基于Canny检测算子提出的,是一种多尺度小波变换极大值的方法,可以用于信号奇异性的分析和图像的边缘检测。
6.形态学边缘检测
使用具有一定形状、方向和大小的结构元素对原始图像进行一些形态学的运算和变换,以此来达到边缘检测的目的,获得的图像的边缘检测结果受到选择的结构元素的影响。
数学形态学中使用的形态学运算是一种非线性运算,这个运算过程是不可逆的,在运算的过程中丢失的信息不能再通过逆变换来恢复。然而由于这种非线性的特性,在滤除图像的噪声时,图像的细节不会像传统的微分算子那样模糊。
《灰度图像的边缘检测算法研究_张金波》:
改进的多方向结构元素边缘检测算法:在介绍形态学边缘检测算子的基础上,分析了多方向结构元素对边缘检测结果的影响,对传统的多方向结构元素边缘检测算法进行了改进。改进的基本思想是,将传统的多方向结构元素对应的检测结果所占的固定权重计算方法,由原来的计算所有检测结果平均值的确定方法,改为由计算八个不同方向结构元素上检测图像的边缘方差比例来确定。
改进的多尺度结构元素边缘检测算法:在介绍结构元素选择和多尺度边缘检测算法的基础上,把不同尺度的结构元素看作一种复合型结构元素,提出了一种改进的多尺度结构元素边缘检测算法。该算法能够对图像进行不同尺度下的边缘检测,最大限度保留边缘细节。
提出了基于形态学的多尺度多结构的边缘检测算法:传统多尺度形态学检测算法和多结构形态学检测算法,采用均值或固定权值来确定最终检测结果所占的比例,没有把各个子检测结果和原图联系起来,在处理不同图像时得到的检测结果差异比较大,不具有广泛性,针对这一缺陷提出了一种权值自适应的多尺度多结构形态学检测方法。该算法的基本思想是,本文工作一提出的改进的多尺度检测结果能够检测出更准确的边缘细节,工作二提出的改进的多结构检测结果能够检测出更丰富的边缘细节,将这两者进行加权平均所得到的算法既能提升边缘的准确定性又能提升边缘信息的丰富程度。
7.亚像素边缘检测
《基于梯度中心跟踪算法的亚像素边缘检测方法研究_苏益沛》:
亚像素边缘检测方法可以分为一步法和两步法,一步法直接从原图像计算求解亚像素边缘位置,两步法则是先提取像素级别的边缘位置,再计算亚像素边缘位置。
二维图像边缘检测可以分解为边缘方向和法线方向的两个一维边缘检测问题,即在正交的两个方向上各自确定边缘点一个维度上的位置,从而得到最终的边缘位置。本文提出的基于梯度中心跟踪算法的亚像素边缘检测方法采用计算边缘向量函数的方法来求取边缘方向和法线方向,在该方法的一步法应用中,直接利用梯度中心跟踪算法求得的边缘向量确定边缘方向和法线方向,进一步采用高斯拟合或三次样条插值方法求解亚像素边缘点;在两步法应用中,先通过完整的梯度中心跟踪算法求出像素级别边缘点的位置,作为后续如Steger 方法、Zernike 矩方法的基础点,再用这些方法提取亚像素边缘点。
本文针对工业机器视觉检测对高精度边缘检测方法的需求,分析了现有的亚像素边缘检测方法存在的问题,研究了提升亚像素边缘检测精度、提高边缘检测完整性、降低噪声和小杂斑干扰的边缘检测方法。本文总结像素级别边缘的分布特点,提出了“历史边缘连续性”假设,基于此提出了梯度中心跟踪算法,创新性地采用跟踪思想来解决边缘检测问题,在像素级别边缘检测中取得了检测精度高、边缘完整性强和去除杂斑能力显著的检测效果。
进一步采用边缘向量函数计算轮廓边缘方向,结合曲线拟合、样条插值方法将边缘检测精度提升到亚像素级别,同时保持了该方法在像素级别检测中的优点。实验结果表明,本文提出的基于梯度中心跟踪算法的亚像素边缘检测方法具有良好的抗噪声、去 除 小 杂 斑 的 能 力 , 具 有 比 Zernike 矩 方 法 、 原 始 Steger 方 法 已 经Canny/Devernay 方法更高的检测精度,重复检测误差小、轮廓完整性强。
7.1 拟合法
此方法定位精确度高,但运算速度慢
7.2 插值法
此方法省时,但对噪声敏感。
7.3 矩法
矩法是一种积分算子,对噪声不敏感。
7.3.1 空间矩法
7.3.2 灰度矩法
7.3.3 Zernike 矩法
7.3.4 Franklin 矩
《基于Franklin矩的亚像素级图像边缘检测算法_吴一全》
本文提出了一种基于 Franklin 矩的亚像素级图像边缘检测算法。首先,建立亚像素边缘模型,利用各级Franklin 矩的卷积来提取图像边缘点细节特征; 然后,根据 Franklin 矩的旋转不变性原理,分析各级 Franklin矩之间的关系,从而得到图像边缘坐标的相关参数; 最后,根据改进的边缘判定条件,确定图像中实际亚像素边缘点。