###Canny边缘检测算子
开源中国。
#@date: 2014-06-20
#@author: gerui
#@email: forgerui@gmail.com
一、一阶微分边缘算子
1. 一阶微分边缘检测算子也称梯度边缘算子。
2. 梯度的模值大小提供了边缘的强度信息,梯度的方向提供了边缘趋势信息,因为梯度方向始终是垂直于边缘的方向。
3. 用有限差分进行梯度近似。
二、二阶微分边缘算子
1. 二阶微分边缘检测算子,它是利用图像在边缘处的阶跃性导致图像二阶微分在边缘处出现零值这一特性进行检测。
2. 二阶微分算子对噪声十分敏感。采用LOG可以减少噪声对边缘的影响。
3. 使用高斯函数对图像进行滤波并对图像滤波结果进行二阶微分运算的过程,可以转换为先对高斯函数进行二阶微分,再利用高斯函数的二阶微分结果对图像进行卷积运算。
三、Canny边缘检测算子
1. 三条标准:高检测率;精确的定位;明确的响应。
2. Canny算子主要四步骤:
1) 用高斯函数对图像进行平滑滤波。将高斯函数作成滤波模板,使用5 X 5的模板。
2) 计算梯度值与方向角。分别求取x方向和y方向的梯度Mx和My。求梯度可以通过使用Sobel模板与图像进行卷积。归并到0, 45, 90, 135四个方向。
3) 非最大值抑制。经过Sobel滤波后,图像中的边缘粗细不一。边缘的粗细主要取决于跨越边缘密度分布。非最大值抑制是将梯度方向上最大梯度值保留,将其他像元删除。分为0,45,90,135度四个方向分别处理,如0度方向检查(x+1, y)、(x, y)、(x-1, y)
;45度方向检查(x+1, y+1)、(x, y)、(x-1, y-1)
...比较这三个像元大小,将较小的两个删除。
4) 滞后阈值化。由于噪声干扰,本应该连续的边缘出现断裂。滞后阈值化设定两个阈值thigh,一个低阈值tlow,通过如下方法计算:
a) 如果像元(x, y)的梯度值大于thigh,则标记为边缘像元;
b) 如果像元(x, y)的梯度值小于tlow,则标记为非边缘像元;
c) 如果像元(x, y)值介于两个阈值之间,则判断及3、5邻域内是否存在梯度大于thigh,如果有则标记为边缘,没有则标记为非边缘像元。
###Canny边缘检测算子的更多相关文章
- Canny边缘检测
1.Canny边缘检测基本原理 (1)图象边缘检测必须满足两个条件:一能有效地抑制噪声:二必须尽量精确确定边缘的位置. (2)根据对信噪比与定位乘积进行测度,得到最优化逼近算子.这 ...
- [转载+原创]Emgu CV on C# (六) —— Emgu CV on Canny边缘检测
Canny边缘检测也是一种边缘检测方法,本文介绍了Canny边缘检测的函数及其使用方法,并利用emgucv方法将轮廓检测解算的结果与原文进行比较. 图像的边缘检测的原理是检测出图像中所有灰度值变化较大 ...
- Canny边缘检测算法的实现
图像边缘信息主要集中在高频段,通常说图像锐化或检测边缘,实质就是高频滤波.我们知道微分运算是求信号的变化率,具有加强高频分量的作用.在空域运算中来说,对图像的锐化就是计算微分.由于数字图像的离散信号, ...
- 图像边缘检测——几种图像边缘检测算子的学习及python 实现
本文学习利用python学习边缘检测的滤波器,首先读入的图片代码如下: import cv2 from pylab import * saber = cv2.imread("construc ...
- Python+OpenCV图像处理(十三)—— Canny边缘检测
简介: 1.Canny边缘检测算子是John F. Canny于 1986 年开发出来的一个多级边缘检测算法. 2.Canny 的目标是找到一个最优的边缘检测算法,最优边缘检测的含义是: 好的检测- ...
- openc —— Canny 边缘检测
边缘检测的一般步骤 [第一步]滤波 边缘检测的算法主要是基于图像强度的一阶和二阶导数,但导数通常对噪声很敏感,因此必须采用滤波器来改善与噪声有关的边缘检测器的性能.常见的滤波方法主要有高斯滤波,即采用 ...
- 各种边缘检测算子特点比较(canny)
canny 最好.但是容易把噪点误判为边界.sobel prewitt log 效果差不多.prewitt比sobel 去噪效果好.roberts马马虎虎.适合什么图片那得看图片的噪点情况,一般can ...
- Sobel算子取代:基于特定点方向的canny边缘检测
前言: Canny边缘检测使用了Sobel算子,计算dx和dy两个方向,对于特定方向的边缘检测,可以作少量修改. 代码: 计算特定方向上的边缘 void CannyOrient( cv::Mat &a ...
- OpenCV图像Canny边缘检测
Canny边缘检测 图像的边缘检测的原理是检测出图像中所有灰度值变化较大的点,而且这些点连接起来就构成了若干线条,这些线条就可以称为图像的边缘函数原型: void cvCanny( ...
随机推荐
- iOS CAShapeLayer精讲
前言 CAShapeLayer继承自CALayer,因此,可使用CALayer的所有属性.但是,CAShapeLayer需要和贝塞尔曲线配合使用才有意义. 关于UIBezierPath,请阅读文章:i ...
- express源码剖析2
当使用express时,代码会这样写: var express = require('express'); 如果创建一个express的应用,代码会这样写: var app = express(); ...
- 支持Git的代码托管网站
支持Git的代码托管网站: https://github.com/https://code.google.com http://www.codeplex.com/ http://git.oschina ...
- delete table 和 truncate table
delete table 和 truncate table 使用delete语句删除数据的一般语法格式: delete [from] {table_name.view_name} [where< ...
- python学习(5)
python(5)5.1 模块:每个.py文件就是一个模块,多个模块可以放在一个包中,而多个包可以放在更大的包中.表示包A中的asd.py可以这样写:A.asd sys模块:它是python的内建模块 ...
- DBHelper数据库操作类(二)
不错文章:http://www.codefans.net/articles/562.shtml http://www.cnblogs.com/gaobing/p/3878342.html using ...
- 【IOS界面布局】横竖屏切换和控件自适应(推荐)
[IOS界面布局]横竖屏切换和控件自适应(推荐) 分类: [MAC/IOS下开发]2013-11-06 15:14 8798人阅读 评论(0) 收藏 举报 横竖屏切换 自适应 第一种:通过人为的办法改 ...
- HT518V311
HT518V311.rar
- linux僵死进程的产生与避免
作者:lingdxuyan来源:ChinaUnix技术博客,本文版权由lingdxuyan所有,如需转载,请注明出处. 一个进程在调用exit命令结束自己的生命的时候,其实它并没有真正的被销毁, ...
- [xml解析]rapidxml读取文件
因为项目需要读取xml配置文件,在原来调查一番后,项目组使用了tinyxml. tinyxml确实简单,非常清楚的就把读取方案写出来了.但是,由于后期xml文件越来越大(2.5M,大概1w多行数据), ...