前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C++ OpenCV中Canny边缘检测

C++ OpenCV中Canny边缘检测

作者头像
Vaccae
发布2019-07-24 13:03:33
2.3K0
发布2019-07-24 13:03:33
举报
文章被收录于专栏:微卡智享微卡智享微卡智享

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-

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-05-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 微卡智享 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档