文章目录

  • 1.边缘检测的基本方法
    • 1.1. 2个主要方法
    • 1.2. 摸板设计Mask Design
      • 1.2.1. 原则
    • 1.3. 存在的问题
  • 2.更强的边缘检测方法
    • 2.1.Canny Operator
    • 2.2.LapLacian Operator

1.边缘检测的基本方法

梯度足够大的位置一般认为是灰度边缘。

1.1. 2个主要方法

  • 微分梯度DG(Different Gradient)
    边缘梯度大小的计算方法:
    g = ( g x 2 + g y 2 ) 1 / 2 g = ∣ g x ∣ + ∣ g y ∣ g = max ⁡ ( ∣ g x ∣ , ∣ g y ∣ ) \begin{gathered} g=\left(g_{x}^{2}+g_{y}^{2}\right)^{1 / 2}\\ g=\left|g_{x}\right|+\left|g_{y}\right| \\ g=\max \left(\left|g_{x}\right|,\left|g_{y}\right|\right) \end{gathered} g=(gx2​+gy2​)1/2g=∣gx​∣+∣gy​∣g=max(∣gx​∣,∣gy​∣)​
    边缘方向的计算方法:
    θ = arctan ⁡ ( g y / g x ) \theta=\arctan \left(g_{y} / g_{x}\right) θ=arctan(gy​/gx​)

    以上Mask:Robert、Sobel和Prewitt的尺寸较小,任务精度较低。还有一种更好的算子Circular Operator。

  • 摸板匹配TM(Template matching)
    边缘梯度大小的计算方法:
    g = max ⁡ ( g i : i = 1 , … , n ) g=\max \left(g_{i}: i=1, \ldots, n\right) g=max(gi​:i=1,…,n)
    边缘方向的计算方法:
    g = max ⁡ ( g i : i = 1 , … , n ) g=\max \left(g_{i}: i=1, \ldots, n\right) g=max(gi​:i=1,…,n)

1.2. 摸板设计Mask Design

1.2.1. 原则

较大的Mask可以提高边缘检测的精度,但速度较慢。
较小的Mask则牺牲了精度,加速检测。
我们的基本原则是选择trade-off的方案。

1.3. 存在的问题

  • 固有的问题:上面没有考虑到边缘离邻域中心的位移 E E E,也没有考虑噪声对边缘大小和方向估计产生偏差的影响。
    S x = [ − 1 0 1 − 2 0 2 − 1 0 1 ] S y = [ 1 2 1 0 0 0 − 1 − 2 − 1 ] S_{x}=\left[\begin{array}{rrr} -1 & 0 & 1 \\ -2 & 0 & 2 \\ -1 & 0 & 1 \end{array}\right] \quad S_{y}=\left[\begin{array}{rrr} 1 & 2 & 1 \\ 0 & 0 & 0 \\ -1 & -2 & -1 \end{array}\right] Sx​=⎣⎡​−1−2−1​000​121​⎦⎤​Sy​=⎣⎡​10−1​20−2​10−1​⎦⎤​
  • 可以证明,在下列条件下,Sobel算子在台阶边方向的估计上具有零误差:
    ∣ θ ∣ ≤ arctan ⁡ ( 1 / 3 ) and  ∣ E ∣ ≤ ( cos ⁡ θ − 3 sin ⁡ ∣ θ ∣ ) / 2 |\theta| \leq \arctan (1 / 3) \quad \text { and } \quad|E| \leq(\cos \theta-3 \sin |\theta|) / 2 ∣θ∣≤arctan(1/3) and ∣E∣≤(cosθ−3sin∣θ∣)/2

2.更强的边缘检测方法

2.1.Canny Operator

Canny(1986)开发了一种完全不同的边缘检测方法。通过泛函分析得出边缘检测的最佳函数。它具有3个优化准则-良好的检测,良好的定位,以及在白噪声条件下每个边缘只有一个响应。
Canny发现的一维函数可以用高斯函数的导数精确地逼近,该方法的基本思想是在高斯平滑图像的梯度幅值的局部极大值处定位边缘。Canny的实现在边缘大小上采用滞后操作,以使边缘合理连接。最后,采用多尺度方法对边缘检测器的输出进行分析。

注意:迟滞阈值化Hytheresis Thresholding
迟滞是一种效应的滞后——一种惯性。在阈值的上下文中,它意味着高于某个低阈值的区域被认为高于阈值,如果它们也连接到高于更高、更严格的阈值的区域。因此,它们可以被视为这些高度可信领域的延续。

迟滞阈值的目的是通过利用物体边界的连通性来获得假阳性和假阴性之间的更好的平衡。
除了以下几点,还有一些简单的准则来选择迟滞阈值:

  • 使用一对迟滞阈值,提供抗已知噪声水平范围的免疫性;
  • 选择较低的阈值来限制噪声刺激的可能程度
  • 选择上限阈值,尽可能保证重要边界的播种。

基本规则是在一个较高的水平上对边缘进行阈值化,然后允许边缘向下扩展到一个较低的水平阈值,但只允许边缘与已经被分配边缘状态的点相邻。

2.2.LapLacian Operator

【计算机视觉】边缘检测相关推荐

  1. CV:计算机视觉技术之图像基础知识(二)—以python的skimage和numpy库来了解计算机视觉图像基础(图像存储原理-模糊核-锐化核-边缘检测核,进阶卷积神经网络(CNN)的必备基础)

    CV:计算机视觉技术之图像基础知识(二)-以python的skimage和numpy库来了解计算机视觉图像基础(图像存储原理-模糊核-锐化核-边缘检测核,进阶卷积神经网络(CNN)的必备基础) 目录 ...

  2. Python 计算机视觉(十)—— OpenCV 图像锐化及边缘检测

    参考的一些文章以及论文我都会给大家分享出来 -- 链接就贴在原文,论文我上传到资源中去,大家可以免费下载学习,如果当天资源区找不到论文,那就等等,可能正在审核,审核完后就可以下载了.大家一起学习,一起 ...

  3. python计算机视觉2:图像边缘检测

    我是一名初学者,如果你发现文中有错误,请留言告诉我,谢谢 如果需要检测到图像里面的边缘,首先我们需要知道边缘处具有什么特征. 对于一幅灰度图像来说,边缘两边的灰度值肯定不相同,这样我们才能分辨出哪里是 ...

  4. 计算机视觉基础-图像处理(边缘检测)cpp+python

    6.1 简介 6.1.1 什么是边缘? 边缘是图像强度函数快速变化的地方 6.1.2 如何检测边缘? 为了检测边缘,我们需要检测图像中的不连续性,可以使用导数来检测不连续性. 如上图所示,上图的第一幅 ...

  5. 计算机视觉基础-图像处理 Task06 边缘检测

    文章目录 Sobel算子 Canny边缘检测 1.高斯滤波 2.计算梯度强度和方向 3.非极大值抑制 4.用双阈值算法检测和连接边缘 函数实现 Sobel算子 Canny算法 Sobel算子 我们可以 ...

  6. 深度学习入门笔记(十六):计算机视觉之边缘检测

    欢迎关注WX公众号:[程序员管小亮] 专栏--深度学习入门笔记 声明 1)该文章整理自网上的大牛和机器学习专家无私奉献的资料,具体引用的资料请看参考文献. 2)本文仅供学术交流,非商用.所以每一部分具 ...

  7. 计算机视觉中的边缘检测

    计算机视觉中的边缘检测 边缘检测是计算机视觉中最重要的概念之一.这是一个很直观的概念,在一个图像上运行图像检测应该只输出边缘,与素描比较相似.我的目 标不仅是清晰地解释边缘检测是怎样工作的,同时也提供 ...

  8. python边缘检测画简笔画_python计算机视觉2:图像边缘检测

    标签: 我是一名初学者,如果你发现文中有错误,请留言告诉我,谢谢 如果需要检测到图像里面的边缘,首先我们需要知道边缘处具有什么特征. 对于一幅灰度图像来说,边缘两边的灰度值肯定不相同,这样我们才能分辨 ...

  9. (计算机视觉课程-笔记1)图像边缘检测

    图像边缘检测 1. sobel 算子 Sobel算子是一种常用于图像处理和计算机视觉中的边缘检测算法.它用于识别图像中的边缘区域,即图像中灰度值发生剧烈变化的地方.Sobel算子基于图像的灰度梯度,通 ...

  10. 计算机视觉基础(六)——图像边缘检测

    1 简介 1.1 什么是边缘? 边缘是图像强度函数快速变化的地方. 1.2 如何检测边缘? 为了检测边缘,我们需要检测图像中的不连续性,可以使用导数来检测不连续性. 如上图所示,上图的第一幅图表示一张 ...

最新文章

  1. 使用 Pytorch 实现 skip-gram 的 word2vec
  2. 2 分 31 秒,腾讯云创造 128 卡训练 ImageNet 新记录
  3. 域密码自助重置系统----绑定私人邮箱信息自助重置(一)
  4. UWP 剪贴板 Clipboard
  5. VTK:图表之CreateTree
  6. 无法将 lambda 表达式 转换为类型“System.Delegate”,因为它不是委托类型
  7. Ansible Tower:安装以及HA多集群安装
  8. 如何解决Flash CS6打开后闪退的问题
  9. php仿it之家源码,织梦仿IT之家带wap手机版 v5.7
  10. HTML5+app开发学习之IOS打包篇
  11. Hexo + Butterfly 自定义右键菜单
  12. Git | git的简单使用教程
  13. upc 9367 雷涛的小猫
  14. 2023春季露营投影怎么选?轻薄投影极米Z6X Pro值得推荐
  15. 找不到bridge.dll文件
  16. 求与下面谓词公式等值的前束范式_离散数学课后答案
  17. ZYNQ7010教程(一)PL部分
  18. scala akka 修炼之路6(scala函数式柯里化风格应用场景分析)
  19. OpenCV+C++ 查找文件中的图片,处理后保存
  20. 打造属于自己的安卓Metro界面

热门文章

  1. Flask之钩子函数
  2. tpch测试mysql_数据库系统TPC-H测试方法及结果分析
  3. Java Web 开发实战经典 基础篇(1)
  4. 大明:讲解硬盘ESP分区和MSR分区有什么用?值得收藏
  5. kafka消息堆积且CPU过高代码优化
  6. xenserver安装配置
  7. 深度学习训练之optimizer优化器(BGD、SGD、MBGD、SGDM、NAG、AdaGrad、AdaDelta、Adam)的最全系统详解
  8. 老男孩python全栈开发视频教程_老男孩Python全栈开发(92天全)视频教程 自学笔记18...
  9. 第二章华氏度摄氏度转换
  10. html a标签触发不了onclick()事件