博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OpenCV笔记(十六)——使用Canny方法进行边缘检测
阅读量:6221 次
发布时间:2019-06-21

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

Canny方法被许多人认为是拿来做边缘检测的最佳的方法。

在维基百科上有关于Canny方法的比较详细的介绍:http://en.wikipedia.org/wiki/Canny_edge_detector

所以下面只是简单地提一下,因为暂时没有充裕的时间去阅读OpenCV实现Canny的源代码。

Canny方法大体上以四个步骤完成:

1. 利用高斯滤波器过滤噪声。

2. 利用Sobel相似的方法得到图像的强度的梯度。(Sobel算子对图像做微分)

3. 利用Non-maximum suppression方法对第2步获得的候选边缘进行处理,移除不属于边缘部分的像素,留下比较细小的边缘。

4. Hysteresis,即设定upper, lower两个阈值,高于upper的认为是边缘,低于lower的不是边缘。在upper和lower之间的,只有它们与高于upper的像素邻接,才认为是边缘。upper和lower的比例一般为2:1或者3:1。

 

在OpenCV中,Canny方法的实现由Canny函数来完成:

void Canny(InputArray image, OutputArray edges, double threshold1, double threshold2, int apertureSize=3, bool L2gradient=false)

参数介绍:

image应为8位单通道的图像

edges和image有相同的尺寸和类型

threshold1是上文中的lower阈值

threshold2是upper阈值

apertureSize是Sobel算子的大小,一般为3

L2gradient是一个flag,如果为false,则计算gradient时候使用1范式,即计算行微分和列微分绝对值的和,如果为true,则计算行为分和列微分的平方和的开根号。

 

转载于:https://www.cnblogs.com/nipan/p/4149453.html

你可能感兴趣的文章
xgboost算法教程(两种使用方法)
查看>>
在Android Studio上测试运行,Unity发布成Android包过程中所遇到的问题及解决方案...
查看>>
设置UIImage的渲染模式:UIImage.renderingMode
查看>>
ajax最常见的几种面试题
查看>>
横向文本框 index获取索引 和 eq 实现
查看>>
学习 WINDOWS8 的开发 Windows Metro Style Apps !
查看>>
linux中添加环境变量(python为例)
查看>>
会话断开数据保存情况
查看>>
Linux-JDK+Tomcat的安装笔记
查看>>
吴忠军百度百科
查看>>
ActiveRecord::ConnectionAdapters::SchemaStatements | 有关 Column 的常见方法笔记
查看>>
搭建ssm框架经验
查看>>
编程之美 第1章 游戏之乐——游戏中碰到的题目(四)
查看>>
对话框DLL封装
查看>>
delphi TStringList 用法详解
查看>>
注意这种写法
查看>>
socket通信如何处理每次包长度不定问题
查看>>
51Nod 1136 欧拉函数 Label:数论
查看>>
转载 乘法逆元
查看>>
http
查看>>