C++ OpenCV中Canny边缘检测

Canny边缘检测介绍

Canny边缘检测算子是一种多级检测算法。1986年由John F. Canny提出,同时提出了边缘检测的三大准则:

  1. 低错误率的边缘检测:检测算法应该精确地找到图像中的尽可能多的边缘,尽可能的减少漏检和误检。

  2. 最优定位:检测的边缘点应该精确地定位于边缘的中心。

  3. 图像中的任意边缘应该只被标记一次,同时图像噪声不应产生伪边缘。

Canny算法出现以后一直是作为一种标准的边缘检测算法,此后也出现了各种基于Canny算法的改进算法。时至今日,Canny算法及其各种变种依旧是一种优秀的边缘检测算法。而且除非前提条件很适合,你很难找到一种边缘检测算子能显著地比Canny算子做的更好。

Canny边缘检测算法的处理流程

Canny边缘检测算法可以分为以下5个步骤:

1)        高斯模糊 - GaussianBlur

2)        灰度转换 - cvtColor

3)        计算梯度 - Sobel/Scharr

4)        非最大信号抑制

5)        高低阈值输出二值图像

先上干货


代码演示

新建一个项目opencv-0016,配置属性(VS2017配置OpenCV通用属性),然后在源文件写入#include和main方法

我们在上面定义了一一个初始的阈值为40和最大阈值255,然后又增加了一个方法用于处理Canny的运算

然后下面写Canny的方法

其中我们的后面参数阈值就是第一个阈值*2即可。

然后在我们的循环里面增加方法处理,并且加上按u键增加阈值,按d键减少阈值

然后运行起来效果


-END-

长按下方二维码关注

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Vaccae

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值