CV学习笔记-边缘提取

简介: CV学习笔记-边缘提取

边缘提取

1.概述

1.边缘

定义:图像的边缘是指图像局部区域亮度变化显著的部分,该区域的灰度剖面一般可以看作是一个阶跃,即从一个灰度值在很小的缓冲区域内急剧变化到另一个灰度相差较大的灰度值。

特点:边缘有正负之分,由暗到亮为正,由亮到暗为负。

求边缘幅度的算法:sobel、Roberts、prewitt、Laplacian、Canny算子(Canny算子的效果优于其他,但较为复杂)

2. 边缘提取的定义

边缘检测主要是图像的灰度变化的度量、检测和定位

2018122814580746.png

3. 边缘提取的应用

例如语义分割、实例分割

2018122814580746.png2018122814580746.png

2.原理

1. 高频&低频信号

图像中的低频和高频信号也称为低频分量和高频分量。高频分量在图像意义上指图像强度(亮度/灰度)变化剧烈的地方,也就是边缘(轮廓);图像中的低频分量在图像的意义上指图像强度(亮度/灰度)变化平缓的地方,特点是大片色块的区域。

注:人眼对于高频信号的区域更为敏感

2. 边缘检测的原理和步骤

原理: 在边缘部分,像素值出现”跳跃“或者较大的变化。如果在此边缘部分求一阶导数,就会看到极值的出现,而在一阶导数为极值的地方,二阶导数为0,基于这个原理,就可以进行边缘检测。而在图像中,属于二维空间,二维空间下需要在两个方向求导,可以通过定位梯度值大于邻域的像素的方法寻找极值(或者推广到大于一个阈值)。

3. 常用滤波算子

图像锐化: (拉普拉斯变换核函数),图像锐化是补偿图像的轮廓,增强图像的边缘及灰度跳变的部分,使图像变得清晰。图像锐化是为了突出图像上的物的边缘、轮廓、或某些线性目标要素的特征。这种滤波方法提高了物边缘与周围像元之间的反差,因此也被称为边缘增强。

2018122814580746.png

图像平滑: 图像平滑指用于突出图像的宽大区域、低频成分、主干成分或抑制图像噪声和干扰高频成分的图像处理方法,目的是使图像亮度平缓渐变,减小突变梯度,改善图像质量。

Sobel算子:

定义: 包含两组3*3的矩阵,分别为横向及纵向模板,将之与图像做平面卷积,即可分别得出横向及纵向的亮度差分近似值。实际使用中,常用如下两个模板来检测图像边缘:

2018122814580746.png

优点: Sobel算子是典型的一阶导数的边缘检测算子,由于该算子中引入了类似局部平均的运算,因此对噪声具有平滑作用,能很好的消除噪声的影响,对于像素的位置的影响做了加权,因此与Prewitt算子相比效果更好。

缺点: Sobel算子没有基于图像灰度进行处理,所以并不能将图像的主题与背景严格地区分开来,由于Sobel算子并没有严格地模拟人的视觉生理特征,所以提取的图像轮廓有时并不能令人满意。

2018122814580746.png

Prewitt算子

Prewitt算子是一种一阶微分算子的边缘检测,利用像素点上下、左右邻点的灰度差,在边缘处达到极值检测边缘,去掉部分伪边缘,对噪声具有平滑作用。其原理是在图像空间利用两个方向模板与图像进行邻域卷积来完成的,这两个方向模板一个检测水平边缘,一个检测垂直边缘。

2018122814580746.png

4. Canny边缘检测算法

1. 对图像进行灰度化

将图像处理成灰度图像。

2. 对图像进行高斯滤波

根据待滤波的像素点及其邻域点的灰度值按照一定的参数规则进行加权平均。这样可以有效滤去理想图像中叠加的高频噪声。

高斯平滑水平和垂直方向呈现高斯分布(二维),相比于均值滤波有更好的平滑效果。

一维、二维高斯分布概率密度函数:

2018122814580746.png

高斯卷积核大小的选择将影响Canny检测器的性能:尺寸越大,检测器对噪声的敏感度越低,但是边缘检测的定位误差也将略有增加。

注:一般实际选择5*5,在大部分场景下综合效果最优。

2018122814580746.png

3. 检测图像中的水平、垂直和对角边缘(如Prewitt、Sobel算子等)

见上节“常见的滤波算子”

4. 对梯度幅度值进行非极大值抑制

非极大值抑制(NMS):搜索局部的最大值,抑制非极大值。

目的: 消除冗余框

方法: 对于重叠的候选框,计算他们的重叠部分,若大于规定阈值,则删除;低于阈值则保留。对于无重叠的候选框,都保留。

将当前像素的梯度强度与沿正负梯度方向上的两个像素进行比较。

如果当前像素的梯度强度与另外两个像素相比最大,则该像素点保留为边缘点,否则该像素点将被抑制(灰度值置为0)。

2018122814580746.png

示例: 以目标检测为例:目标检测过程中在同一目标的位置上很有可能会产生一些重叠的候选框,此时需要找到最合适的目标边界框,非极大值抑制就是一个很好的解决方案来消除冗余边界框。

2018122814580746.png

5.用双阈值算法检测和连接边缘

背景:非极大值抑制处理后图像的输出结果是一个非边缘点灰度值为0,可能为边缘的局部灰度极大值点为非零(通常取128)的二值图像。结果中保留了很多由于噪声或者其他原因而产生的伪边缘。基于这个问题背景,提出了双阈值检测。

双阈值检测:

如果边缘像素的梯度值高于阈值,则将其标记为强边缘像素;

如果边缘像素的梯度值低于高阈值高于低阈值,则将其标记为弱边缘像素;

如果边缘像素的梯度值低于低阈值,则会被抑制。

双阈值检测法中的思想:高阈值之上为强边缘,低于低阈值不是边缘,介于中间为弱边缘。

注:阈值的选择取决于特定图像的内容,没有放之四海而皆准的阈值。

抑制孤立阈值点:

对于弱边缘,它既可能是真实边缘又可能是噪声或者颜色变化等保留的,所以,应该抑制后者的情况引入的弱边缘,基于下面两个理论步骤抑制不合适的弱边缘。

一般情况下,由真实边缘引入的弱边缘将连接到强边缘像素,而噪声响应未连接

为了跟踪边缘连接,通过查看弱边缘像素及其8个邻域像素,只要其中一个为强边缘像素,则该弱边缘点就可以保留为真实的边缘。

2018122814580746.png

个人学习笔记,仅供学习交流,转载请注明出处!

相关文章
|
机器学习/深度学习 人工智能 自然语言处理
视觉 注意力机制——通道注意力、空间注意力、自注意力
本文介绍注意力机制的概念和基本原理,并站在计算机视觉CV角度,进一步介绍通道注意力、空间注意力、混合注意力、自注意力等。
14202 58
|
机器学习/深度学习 人工智能 监控
人工智能中的图像识别
人工智能中的图像识别
912 1
|
5月前
|
编解码 vr&ar 计算机视觉
SoccerNet 2025挑战赛:赛题整理(二)
梳理SoccerNet 2025挑战赛中的赛题二、以及该赛题的冠军方案
234 0
|
存储 C语言
C语言学习记录——动态内存函数介绍(malloc、free、calloc、realloc)
C语言学习记录——动态内存函数介绍(malloc、free、calloc、realloc)
2037 1
|
机器学习/深度学习 传感器 算法
单目3D目标检测 方法综述——直接回归方法、基于深度信息方法、基于点云信息方法
本文综合整理单目3D目标检测的方法模型,包括:基于几何约束的直接回归方法,基于深度信息的方法,基于点云信息的方法。万字长文,慢慢阅读~ 直接回归方法 涉及到模型包括:MonoCon、MonoDLE、MonoFlex、CUPNet、SMOKE等。 基于深度信息的方法 涉及到模型包括:MF3D、MonoGRNet、D4LCN、MonoPSR等。 基于点云信息的方法 涉及到模型包括:Pseudo lidar、DD3D、CaDDN、LPCG等。
2966 2
|
计算机视觉
[QT5&OpenCV] 边缘检测、轮廓提取及轮廓跟踪
[QT5&OpenCV] 边缘检测、轮廓提取及轮廓跟踪
1095 0
|
存储 算法 数据安全/隐私保护
基于A律压缩的PCM脉冲编码调制通信系统simulink建模与仿真
本项目展示了一种基于MATLAB 2022a的脉冲编码调制(PCM)算法,用于将模拟信号转换为数字信号。A律压缩是非均匀量化方法之一,适用于语音信号编码,能够提高信噪比和编码效率。核心代码已提供,并附有详细中文注释和操作视频。A律压缩通过调整量化间隔来适应人耳的听觉特性,减少量化噪声,实现高质量的语音通信。此技术广泛应用于电话通信、VoIP和数字音频处理等领域。
全双工与半双工技术解析
随着信息技术进步,通信系统对双工模式要求提升。全双工允许双向同时传输,提高效率和实时性,适合高速实时应用但成本高;半双工则单向传输,简单低成本,适用于实时性要求不高的场景。选择双工模式需权衡成本、技术与实时性需求。未来,双工模式将更灵活以适应多样化需求。
503 2
|
算法 计算机视觉 Python
一文讲解图像梯度
图像梯度计算的是图像变化的幅度。对于图像的边缘部分,其灰度值变化较大,梯度值变化也较大;相反,对于图像中比较平滑的部分,其灰度值变化较小,相应的梯度值变化也较小。一般情况下,图像梯度计算的是图像的边缘信息。它在图像处理和计算机视觉中具有重要的应用,常用于边缘检测、特征提取和图像增强等任务。
1433 0
|
算法 数据可视化 计算机视觉
opencv Canny边缘检测(python)
opencv Canny边缘检测(python)