一、边缘检测算子类别

常见边缘检测算子:Roberts 、Sobel 、Prewitt、Laplacian、Log/Marr、Canny、Kirsch、Nevitia

二、一阶微分算子:Roberts 、Sobel 、Prewitt

Robert算子是第一个边缘检测算子,提出者Lawrence Roberts in 1963。

Sobel边缘算子,当年作者并没有公开发表过论文,仅仅是在一次博士生课题讨论会(1968)上提出("A 3x3 Isotropic Gradient Operator for Image Processing"),后在1973年出版的一本专著("Pattern Classification and Scene Analysis")的脚注里作为注释出现和公开的。提出者Irwin Sobel。

Prewitt算子来自J.M.S. Prewitt "Object Enhancement and Extraction" in "Picture processing and Psychopictorics", Academic Press,1970。

我们看这三种边缘检测算子模板及写成差分的形式

Roberts算子

Sobel算子

Prewitt算子

图 4 一阶微分算子

如何计算边缘幅值与方向?以Sobel算子为例。3*3 Sobel两个方向的算子在图像上滑动,模板与其覆盖的图像3*3区域9个像素进行卷积,求和后得到此方向的边缘检测幅值。

f(x,y)为图像,Gx和Gy分别是水平和竖直方向算子的卷积结果,G则是最终得到的边缘幅值,θ值则是边缘方向。当然G的计算有时简化为

  

或者

求幅值时是有多种选择的,一般根据具体应用选择用水平还是竖直或是两个方向同时检测。

另外,需要说明的是,Sobel算子还有一种变种,是各向同性Sobel算子,其模板为

图 5 各向同性Sobel算子

Sobel各向同性算子的权值比普通Sobel算子的权值更准确。为什么?模板的权值是离中心位置越远则权值(看绝对值)影响越小,如上图,把模板看成是9个小正方形,小正方形边长为1,则虚线三角形的斜边长为,下直角边长为1,则如果(0,0)位置权值绝对值大小为1,则按照距离关系,位置(1,0)处的权值绝对值大小应该为才是准确的。

三、 二阶微分算子:Laplacian、Log/Marr

拉普拉斯算子来自拉普拉斯变换,而Log算子又称Marr算子,由David Courtnay Marr和Ellen Hildreth(1980)共同提出,计算神经学创始人Marr在1980年正式发表论文时,因换白血病早逝,后面设立Marr奖以此纪念其贡献,现在每两年的ICCV(与ECCV,CVPR并称计算机视觉三大顶级会议)会评出一个Marr奖。这两种算子模板如下:

Laplacian算子(两种模板)

Log算子

图 6 二阶微分算子

拉普拉斯算子数学公式是

写成差分形式为

Log边缘检测则是先进行高斯滤波再进行拉普拉斯算子检测,然后找过零点来确定边缘位置,很多时候我们只是知道Log 5*5模板如上图所示,但是具体是怎么得到的?下面进行推导。

二维高斯公式是

按拉普拉斯算子公式求x,y方向的二阶偏导后为

这里x,y不能看成模板位置,应看成是模板其他位置到中心位置的距离。那么写成

这里x0,y0就是模板中心位置,x,y是模板其他位置,对于5*5模板,则x0=2,y0 = 2,那对于模板中(0,0)位置的权值,即把x= 0,y= 0,x0= 2,y0 = 2带入上式,另= 1,得到约等于0.0175,这样得到

通过取整变符号,且模板总和为0,得到图6所示的模板。

另外,这里模板大小是如何取的?通常高斯分布中,在(-3,3)的范围内就覆盖了绝大部分区域,所以模板大小一般取dim = 1 + 6(在SIFT特征中,其中的高斯模糊也是这样取),dim如果为小数,则取不小于dim的最小整数,当然实际使用时没有这么严格,如上面我们取=1时,模板大小取5*5。那同一个尺寸的模板中的权值调整就是的变化得到的,变化到一定程度,模板尺寸大小改变(这个是个人理解,欢迎拍砖)。

四、非微分边缘检测算子:Canny

Canny边缘检测大家应该很熟悉,这里列出步骤,并给出一个详细介绍的链接Canny算子。

1.      彩色图像转换为灰度图像
    2.      对图像进行高斯模糊
    3.      计算图像梯度,根据梯度计算图像边缘幅值与角度(这里其实用到了微分边缘检测算子来计算梯度幅值方向)
    4.      非最大信号压制处理(边缘细化)
    5.      双阈值边缘连接处理

6.      二值化图像输出结果

五、方向算子Kirsch(8个3*3模板),Nevitia (12个5*5模板)

这两个算子是利用多个方向的子模板进行分别计算,最后取幅值最大的那个为最终边缘幅值,方向即最大幅值对应的那个方向。

六、各边缘检测算子对比

参考文献:

1、http://blog.csdn.net/xiaojiegege123456/article/details/7714863

2、http://blog.csdn.net/yanmy2012/article/details/8110316

3、http://blog.csdn.net/langb2014/article/details/45667921

4、https://blog.csdn.net/tigerda/article/details/61192943

图像处理+边缘检测算法相关推荐

  1. 数字图像处理---边缘检测算法复现(ED、EDPF、CannySR、CannySRPF)

    目录 前言 (一)无法查找或打开 PDB 文件. (二)自带的测试图像完美运行,自己的图片运行报错 前言 本篇主要记录一下在进行四种边缘检测算法(ED.EDPF.CannySR.CannySRPF)复 ...

  2. 【图像处理】——Python图像分割边缘检测算法之二阶梯度算子(laplace、log、dog算子)

    目录 一.二阶算子简介 二.laplace(拉普拉斯算子) 1.什么是拉普拉斯算子 (1)连续二维函数的二阶导 (2)离散二维函数的二阶导数 2.常用算子模块及代码 3.结果 三.log算子 1.什么 ...

  3. 【图像处理】——Python图像分割边缘检测算法之一阶梯度算子(Roberts、Prewitt、Sobel、 Kirsch、Canny算子)

    目录 前言 一.边缘检测算法 1.一阶算子 2.二阶算子 二.一阶算子 原图像lena 1.Roberts算子 不同方向的算子模板 梯度的计算 系统代码: 自定义函数代码 结果 2.Prewitt 不 ...

  4. 【图像处理】 常用边缘检测算法对比分析

    文章目录一瞥 边缘的定义 边缘检测的基本方法 图像滤波 图像增强 图像检测 图像定位 常见边缘检测算子分析 1) 差分边缘检测 2)Reborts算子 3)Sobel算子 4)Prewitt 算子 非 ...

  5. [图像处理]-Canny边缘检测算法

    1.问题描述 在处理图像时,有时我们需要图像的边界或通过边界得到一定的信息,如何有效而准确的找到这些边界并显示出来就了一个问题,而Canny算法则可以很好的解决它. 2.简述Canny算法 Canny ...

  6. 图像像素点赋值_医学图像处理教程(五)——医学图像边缘检测算法

    今天将给大家分享医学图像常见两种图像边缘检测算法. 1.Sobel算子操作 Sobel算子的思想,邻域的像素对当前像素产生的影响不是等价的,所以距离不同的像素具有不同的权值,对算子结果产生的影响也不同 ...

  7. 图像处理:Canny边缘检测算法原理(一)

    图象的边缘是指图象局部区域亮度变化显著的部分,该区域的灰度剖面一般可以看作是一个阶跃,既从一个灰度值在很小的缓冲区域内急剧变化到另一个灰度相差较大的灰度值.图象的边缘部分集中了图象的大部分信息,图象边 ...

  8. 图像处理:推导Canny边缘检测算法

    目录 概述 最优边缘检测 算法实现的步骤 1.灰度化与高斯滤波 2.计算图像的梯度和梯度方向 3.非极大值抑制 4.双阈值筛选边缘 5.利用滞后的边界跟踪 6.在图像中跟踪边缘 数学推导 Opencv ...

  9. C语言数字图像处理----3.2 图像边缘检测之Canny边缘检测算法

    本篇将介绍图像边缘检测中的Canny边缘检测,这是传统边缘检测学习中的必学内容,也是图像算法面试中的常见问题,本文将教会初学者如何在理解算法的基础之上,通过C语言来实现Canny边缘检测算法,从而做到 ...

最新文章

  1. linux的三个时间
  2. 双一流博士导师整理:最新的计算机视觉学习路线(含时间分配建议)
  3. 不动产登记进入倒计时 哪些房子必须要卖掉?
  4. 三点估算pmp_我本人是做项目经理的,我把考PMP也当成一个项目来规划
  5. 设置UITableView设置contentsize
  6. 思博伦Landslide CORE帮助UQ实现自动化的现网测试
  7. web服务器中启用作业储存_如何在Kubernetes中启用无服务器计算
  8. robotium之无name、ID仅有desc定位
  9. 如何用电脑快速制作gif动态图片
  10. javaweb 发布目录
  11. FileUtils(文件读写操作工具类)
  12. 华为自研OS操作系统,今秋是否真的会面市?
  13. 计算机开机弹出的今日热点怎么关闭
  14. 怎样提升自己的编程能力?
  15. CentOS 7 iSCSI 多路径(Multipath)配置
  16. 主打产品“火力不足”致使发行人持续盈利能力下降,这公司创业板IPO被终止
  17. 企业工商信息查询第三方软件/API查询原理分析
  18. 企业微信公众号运营引流的三大法宝
  19. 用户网络接口UNI和网络节点接口NNI
  20. 重写drf的ValidationError, 改变抛出异常的状态码

热门文章

  1. Linux socketpair详解
  2. 北京大学再次选择AnyBackup,印证爱数灾备云高校数据保护实力
  3. 【Windows服务删除“服务“】
  4. 文本挖掘林夕、黄伟文的43万字歌词,他们到底在唱些什么?
  5. google 浏览器迅雷支持
  6. EDA初学,新建工程,Quartus软件应用
  7. 班级主页管理系统实现
  8. 小白学python-Linux系统管理
  9. linux环境下安装puphpeteer
  10. win7任务栏图标显示异常的解决方法