Canny源码理解

来源:互联网 发布:大数据世界txt下载 编辑:程序博客网 时间:2024/04/24 13:22

Canny奇缘一       

       对于这篇技术博客,准确的讲是为了记住算法水平提高过程的艰辛。Canny算子在图像处理中应用比较多,但是对其内部运作过程并不十分理解,特立此贴,记录逐步理解的过程。特别是Canny算法的双阈值的设定就更是奇异难定。

       为了能够更好理解Canny算法的源码,需要先概览其运作过程。参考刚萨雷斯的《数字图像处理》第3版本P463-466,可以轻松获取如下操作步骤:
       (1) 高斯滤波器平滑输入图像; //在看opencv2.4.9版本的canny.cpp源码并没有看到高斯滤波的踪影;
       (2) 计算梯度幅值图像和角度图像;
       (3) 角度图像指导梯度幅值图像进行非最大值抑制;
       (4) 用双阈值检测强弱边缘。  //对于这一点展开来说就是:高阈值Th和低阈值Tl对梯度幅值图像作阈值处理,符合如下原则:

                                                      // 梯度值大于Th的点作为边缘保留,小于Tl的点删除,介于两者之间且与边缘点邻接的点作为边缘保留。

        基本原理说起来简单,但用代码实现还是需要火候,后续博客会继续分析Canny源码,看看其他算法大神是怎么构思实现过程的。

原创粉丝点击