(3)类似Marr(LOG)边缘检测方法,也属于先平滑后求导的方法。
2.canny边缘检测算法
Step1:用高斯滤波器平滑图像;
以一文信号为例加以讨论,一文高斯函数G(x)定义为:
Step2:用一阶偏导的有限差分来计算梯度的幅值和方向;
一阶差分卷积模板:
Step3:对梯度幅值进行极大值抑制;
仅仅得到全局的梯度并不足以确定边缘,因此为确定边缘,必须保留局部梯度最大的点,而抑制非极大值。(non-maxima suppression,NMS)
解决方法:利用梯度的方向。
图2.2 非极大值抑制
四个扇区的标号为0到3,对应3*3邻域的四种可能的组合。
在每一点上,邻域的中心像素M与沿着梯度线的两个像素相比。如果M的梯度值不比沿梯度线的两个相邻像素大,则令M=0。
即: Step4:用双阈值算法检测和连接边缘
减少假边缘段数量的典型方法是对N[i,j]使用一个阈值。将低于阈值的所有值赋零值。
这里采用双阈值算法选择阈值,双阈值算法对非极大值抑制图像采用两个阈值Τ1和Τ2,且2Τ1≈Τ2,从而可以得到两个阈值边缘图像N1[i,j]和N2[i,j]。由于N2[i,j]使用高阈值得到,因此含有很少的假边缘,但有间断(不闭合)。双阈值法要在N2[i,j]中把边缘连接成轮廓,当到达轮廓的端点时,该算法就在N1[i,j]的8邻点位置寻找可以连接到轮廓上的边缘,这样,算法不断地在N1[i,j]中收集边缘,直到将N2[i,j]连接起来为止。
2.3 改进的canny
改进的canny算子中就是在canny算子的后三个步骤中整合了置信度估量的方法:
(1) 计算图像梯度,对图像进行高斯过滤平滑图像;
(2) 通过子空间估计,计算每个像素的置信度confident;
(3) 对图像进行增强处理;
(4) 通过增强过的图像计算每个像素的rank;
(5) 利用求出来的每个像素的confident和rank和给定的confident和rank对梯度幅值进行非极大值抑制;
(6) 对非极大值抑制后的图像,根据分别给出的求低阈值和高阈值的rank和confident求的双阈值;
(7) 根据求出的双阈值检测和连接边缘。
总之,嵌入边缘检测的计算步骤如下:
(1)对图像中的每一个像素,除了边界
-估计像素的梯度大小 和方向 ;
-标准化方向矩阵A包含零均值和Frobenius范数;
-根据方向 定义 ;
-计算置信度η,根据公式 ;
(2)根据梯度大小的累计分布计算每个像素的ρ,令 是梯度值的有序集合,则一个像素的梯度大小 被替换的概率为: ;
(3)创建ρ-η图,根据图像每个像素的ρη对可以绘制出一条曲线,该曲线该图将平面分为两个部分;
(4)非极大值抑制;
对于任意点 ,定义f 为代数距离,则在曲线上的点的代数距离都为零,在曲线内部的点都有负的代数距离,在曲线外部的点都有正的代数距离。两个虚拟邻居 和 (如图2.3)的ρ和η的值由有效的像素 , 和 , 的线性插值决定,只有两个虚拟邻居的代数距离都是负的那么该像素才是本地的极大值。 面向图像素描的sift特征边缘图生成和特征匹配技术(6):http://www.youerw.com/jisuanji/lunwen_9069.html