博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Canny Edge Detector
阅读量:4966 次
发布时间:2019-06-12

本文共 629 字,大约阅读时间需要 2 分钟。

Canny边缘检测算法有自己的理论和经验性的推导, 没仔细看/没看明白.

它的步骤如下:

  1. 对原图的灰度图进行高斯滤波
  2. 求一阶导数, 得到每个像素点的梯度强度和方向.
  3. 非最大抑制. 对每个edge candidate像素点, 在它的edge方向上, 它的\(3\times 3\)邻域内, 有两个相邻点. 如果当前像素点处的梯度强度比任意一个相邻点弱, 则将其置为0. 需要注意的是, edge的方向的计算方式见下图.
    chapter10_24.png?raw=true
  4. double thresholding, 然后将点连接成线.
    single thresholding值不好选. double threshing的做法是取一大一小两个threshold, 分别得到两张新图:\(T_H, T_L\), 后者非零点的个数与前者非零点的个数比值在1到3之间. \(T_H\)上的非零点一定也是\(T_L\)上的非零点. 令: \(T_L = T_L - T_H\). 然后对于\(T_H\)上的每一个非零点, 找到它们在\(T_L\)上的所有非零邻接点, 两者并集就是最后的edge points.

Canny Edge Detector比, 的效果都要好.

chapter10_25.png?raw=true

第二行第一个为LoG的结果, 第二个为Canny的结果. 从图中可以看出, Canny对edge的定位更准确, edge点的连通性也更好.

转载于:https://www.cnblogs.com/dengdan890730/p/6148082.html

你可能感兴趣的文章
(转)Asp.Net生命周期系列五
查看>>
织梦栏目页分页title加"第N页"
查看>>
记录一次数据库链接不够用被drop掉的问题
查看>>
C语言实现通用链表初步(二)
查看>>
存储过程实现分页
查看>>
PHP开发环境安装说明书
查看>>
蓝点中文Linux2.0 实验十二 屏幕文本编辑器vi的使用
查看>>
swift,NSUserDefaults的swift化封装
查看>>
分享到QQ空间、新浪微博、腾讯微博的代码!
查看>>
通用媒体查询
查看>>
jmeter之JDBC
查看>>
实验四
查看>>
LeetCode-Shortest Word Distance II
查看>>
机器学习中的凸优化基础
查看>>
Redis和Jedis简介以及Redis事物
查看>>
第三、四、五次会议汇总
查看>>
js高级程序设计学习笔记
查看>>
windows phone 8 mp3 编码及解码
查看>>
亚马逊副总裁谈Marketplace平台的个性化服务
查看>>
Jmeter(非GUI模式)教程
查看>>