12.边缘检测-Part1

目录

 

一 概述

1.背景知识

2.噪声对边缘模型的影响

3.边缘检测的基本步骤

二 边缘检测-基于梯度算子

1.梯度定义

2.梯度算子的说明

3.举例

4.阈值处理

三 边缘检测-基于LoG算子

1.理论基础

2.LoG算子介绍

3.LoG算子的检测步骤

三 边缘检测-基于Canny算子

1.Canny算子介绍

2.Canny算子的数学推到过程

3.Canny算子过程总结

4.Canny算子举例


  数字图像处理的配套视频教程:

1.【冈萨雷斯-数字图像处理】开始安排续数字图像处理的教程_哔哩哔哩_bilibili

2. 数字图像处理通俗教程-冈萨雷斯_哔哩哔哩_bilibili


一 概述

1.背景知识

原理:基于灰度突变来定位边缘位置

常见的几种边缘模型如下

斜坡模型的一阶导数和二阶导数如下所示

2.噪声对边缘模型的影响

结论:找边缘之前去噪 很重要

3.边缘检测的基本步骤

边缘检测基本步骤:

(1)降噪,可以用【高斯滤波器】【均值滤波器】【中值滤波器】等算子对图像进行平滑处理

(2)边缘点的检测

(3)边缘定位

边缘检测主要方法:

(1)基于梯度算子的,如Prewitter,Sobel

(2)LoG算子检测【高斯拉普拉斯】,又称为Marr-Hildreth检测器

(3)Canny算子检测

二 边缘检测-基于梯度算子

1.梯度定义

2.梯度算子的说明

什么是梯度算子?

答:用于计算梯度偏导数的滤波器模板,或者叫差分算子、边缘算子、边缘检测子

常见的梯度算子如下所示

3.举例

4.阈值处理

为了减少无关的边缘,对检测结果进行阈值处理

原理:对梯度图像进行阈值处理,降低噪声的干扰

三 边缘检测-基于LoG算子

1.理论基础

(1)灰度变化与图像尺寸无关,因此可以使用不同尺寸的算子(而不仅仅是小算子如3,5,7),而取决于数值范围

(2)灰度的突然变化会在一阶导数中引起波峰或波谷,在二阶导数中等效地引起零交叉 

因此,算子应具备如下特定:

(1)能计算图像中任一个位置的一阶和二阶微分的算子

(2)它的尺寸可以被调整,以便在任何期望的尺寸上起作用,大的算子可以检测模糊边缘,小的算子可以检测精细细节。

2.LoG算子介绍

一句话总结:先对高斯函数求二阶导,再与原图进行卷积

3.LoG算子的检测步骤

LoG算子检测步骤 :

(1)用一个n*n的高斯低通滤波器对输入图像滤波

(2)计算由第一步得到的图像的拉普拉斯

(3)找到拉普拉斯结果中的零交叉点(目的)

问:高斯滤波器大小如何确定?

答:经验法则,一个n*n的LoG滤波器,n 应是大于或等于6 sigma的最小奇整数。 举例:方差为2 的高斯核,则n = 6*2+1 = 13

问:如何找到零交叉点?

答:用一个3*3的邻域,作用域图像中的任意像素位置,存在零交叉点意味着至少 有一个相对的领域的值相反。测试四种情况(上/下,左/右,2个对角),如果g(x,y) 的值与阈值比较,则需相对邻域数值差的绝对值超过这个阈值,则称之为零交叉像素。

三 边缘检测-基于Canny算子

1.Canny算子介绍

Canny算子的目标

(1)低错误率,所有的边缘点都被找到

(2)边缘点被很好的定位

(3)单一的边缘点响应(真实边缘周围只返回一个点)

问:如何满足如上三个原则?

答:对最佳台阶边缘检测器的一个较好近似是高斯一阶导数,这个结论高斯证明过 我们就不研究了,拿来用就行~

2.Canny算子的数学推到过程

(1)首先用一个高斯函数平滑图像,计算结果的幅度,然后使用梯度幅度和方向来 估计每一点处的方向和边缘强度

(2)由于是用梯度算子,所以边缘会比较宽(之前讨论过),因此下一步是要 用细化边缘,方法是【非最大值抑制】,该方法的本质是指边缘法线的许多离散方向(由于边缘方向是很多离散的值,因此我们需要限定4个方向:水平、垂直、+45、-45)

令d1,d2,d3,d4表示上述4个基本边缘方向:水平、-45、垂直、+45

  • 寻找最接近a(x,y)的方向dk
  • 如果M(x,y)的值至少小于沿dk的两个邻居之一,则令g(x,y)=0,否则 g(x,y)=M(x,y)。 g(x,y)是抑制后的梯度图像

(3)由于g(x,y)中存在伪边缘点,因此需要对其进行阈值处理,Canny使用两个 阈值,TL:TH = 1:2 或1:3

(4)根据强弱边缘生成连通的边缘

  • gNH的所有强像素均被标记为边缘像素
  • 在gNH中定位下一个未被访问的边缘像素P
  • 在gNL中将所有的弱像素标记为有效边缘像素,用8连通性的方法连接到P
  • 如果gNH中的所有非零像素都被访问过,则跳到5,否则返回1
  • 将gNL中未标记为有效边缘像素的所有像素置零
  • 将gNL中的非0 像素附加到gNH,得到最终的Canny结果

人话:就是遍历强边缘中的所有非零像素,对于每一个非零像素,找弱边缘中与其连通的像素,标记为边缘,否则置为0 ,然后将修改过的弱边缘附加到强边缘图中即可。

3.Canny算子过程总结

(1)用高斯滤波器平滑输入图像

(2)计算梯度幅值图像和角度图像

(3)对幅度图像应用非最大抑制

(4)用双阈值处理和连接分析来检测并连接边缘

4.Canny算子举例

这篇有点长了,后面还有边缘连接,再开一篇吧

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值