canny算子
来源:互联网 发布:矩阵的卷积怎么算 编辑:程序博客网 时间:2024/05/17 08:06
1. Canny边缘检测基本原理
2.
step1:高斯平滑函数
(可以理解下维基百科上关于卷积函数的定义,如下图移动的红色窗口代表我们的高斯和函数,蓝色为图像灰度函数)
通过高斯函数产生k*k的模板如3*3
用这个模板对每个像素进行加权平均
Step2:一阶微分卷积模板
step3:对梯度幅值进行非极大值抑制
解决方法:利用梯度的方向。
图1非极大值抑制
四个扇区的标号为0到3,对应3*3邻域的四种可能组合。在每一点上,邻域的中心象素M与沿着梯度线的两个象素相比。如果M的梯度值不比沿梯度线的两个相邻象素梯度值大,则令M=0。
即:
对非极大值抑制图像作用两个阈值th1和th2,两者关系th1=0.4th2 。我们把梯度值小于th1的像素的灰度值设为0,得到图像1。然后把梯度值小于th2的像素的灰度值设为0,得到图像2。由于图像2的阈值较高,去除大部分噪音,但同时也损失了有用的边缘信息。而图像1的阈值较低,保留了较多的信息,我们可以以图像2为基础,以图像1为补充来连结图像的边缘。
链接边缘的具体步骤如下:
对图像2进行扫描,当遇到一个非零灰度的像素p(x,y)时,跟踪以p(x,y)为开始点的轮廓线,直到轮廓线的终点q(x,y)。
考察图像1中与图像2中q(x,y)点位置对应的点s(x,y)的8邻近区域。如果在s(x,y)点的8邻近区域中有非零像素s(x,y)存在,则将其包括到图像2中,作为r(x,y)点。从r(x,y)开始,重复第一步,直到我们在图像1和图像2中都无法继续为止。
当完成对包含p(x,y)的轮廓线的连结之后,将这条轮廓线标记为已经访问。回到第一步,寻找下一条轮廓线。重复第一步、第二步、第三步,直到图像2中找不到新轮廓线为止。
3.
l
l
l
l
l
l
l
参考:
http://blog.csdn.net/likezhaobin/article/details/6835049
http://blog.csdn.net/likezhaobin/article/details/6892176
http://blog.csdn.net/likezhaobin/article/details/6892629
http://www.cnblogs.com/cfantaisie/archive/2011/06/05/2073168.html
- Canny算子
- canny算子
- canny算子
- canny算子
- canny算子
- Canny算子
- Canny算子
- Canny算子
- Canny算子
- canny算子代码
- canny边缘检测算子
- canny算子介绍
- canny算子得实质
- canny算子介绍
- Canny边缘检测算子
- canny算子原理分析
- canny算子边缘检测
- Canny算子边缘检测
- Best Practices for Speeding Up Your Web Site
- 适配IE与火狐
- 修改Xcode自动生成的文件头中的作者和公司名
- VC2008连接SQL2005开发总结
- 两道SQL面试题
- canny算子
- 版面设计
- twm 文档介绍
- 那些年,我们捧读过的C和C++经典
- 远程桌面+花生壳控制adsl动态ip用户的电脑
- 深入理解HTTP TCP/IP Socket
- MakeFile
- Xlib Programming Manual (O'Reilly & Associates, Inc.)
- 远程开启远程计算机的远程桌面