canny 算法学习

        Canny算子的设计步骤如下:


  1)用高斯滤波器对图像滤波,去除图像中的噪声。


  2)用高斯算子的一阶微分对图像进行滤波,得到每个象素梯度的大小|G|和方向θ


  
  


其中:f为滤波后的图像。


  3)对梯度进行“非极大抑制”


  梯度的方向可以被定义为属于4个区之一,各个区用不同的邻近象素来进行比较,以决

定局部极大值。


  4)对梯度取2次阈值得T1T2T1=0.4*T2。把梯度值小于T1的象素灰度

值设为0,得到图像1。然后把梯度值小于T2的象素灰度设为0,得到图像2。由于图像

2的阈值较

高,去除了大部分噪声,但同时也损失了有用的边缘信息。而图像1的阈值较低,保留了较

多的信息。可以以图像2为基础,图像1为补充来连接图像。


  5)连接边缘的具体步骤如下:


  ①对图像2进行扫描,当遇到一个非零灰度的象素P时,跟踪以P为开始点的轮廓线,

直到该轮廓线的终点Q


  ②考察图像1与图像2Q点位置对应的Q′的8邻近区域。如果在Q′点的8邻近区域中有非零象素R′存在,则将其包括到图像2中,作为R点。从R开始,重复第

①步,直到在图像1和图像2中都无法继续为止。


  ③当完成对包含P的轮廓线的连接之后,将这条轮廓线标记为已访问。回到第①步,寻

找下一条轮廓线。
  
④重复①、②、③,直到图像2中找不到新轮廓线为止。
 
阅读更多
文章标签: 算法
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭