DIA——边缘检测

1.边缘

边缘是像素的突变位置。

2.常见边缘检测算法

通过找到一阶导数的极值点或者二阶导数的过零点来确定边缘像素的位置。边缘检测通常使用算子,即特定的卷积核。通过差分对离散的像素点求导,然后转化成卷积核进行卷积。使用卷积统一涵盖求导,高斯平滑等操作。


2.1Sobel 算子

原理
  • 核心思想:通过计算图像中像素点的水平(X方向)和垂直(Y方向)梯度来检测边缘。

  • 数学基础 :使用两个3×3的卷积核分别对图像进行卷积运算,计算梯度。

    • 水平核 (检测垂直边缘):

      复制代码
      [-1, 0, 1]
      [-2, 0, 2]
      [-1, 0, 1]
    • 垂直核 (检测水平边缘):

      复制代码
      [-1, -2, -1]
      [ 0,  0,  0]
      [ 1,  2,  1]
  • 梯度计算

    • 水平梯度 ( G_x ) 和垂直梯度 ( G_y ) 通过卷积得到。
    • 总梯度幅值:( G = \sqrt{G_x^2 + G_y^2} ),或近似为 ( |G_x| + |G_y| )。
步骤
  1. 用水平核和垂直核分别对图像卷积。
  2. 计算每个像素的梯度幅值。
  3. 设定阈值,幅值高于阈值的像素标记为边缘。
优缺点
  • 优点:计算简单,速度快,适合实时处理。
  • 缺点:对噪声敏感,边缘较粗,定位精度较低。
应用场景
  • 快速检测图像中的明显边缘,如工业零件轮廓检测。

2.2. Prewitt 算子

原理
  • 与Sobel类似,但卷积核权重不同,更注重边缘方向的均匀性。

  • 水平核

    复制代码
    [-1, 0, 1]
    [-1, 0, 1]
    [-1, 0, 1]
  • 垂直核

    复制代码
    [-1, -1, -1]
    [ 0,  0,  0]
    [ 1,  1,  1]
  • 梯度计算与Sobel相同。

优缺点
  • 优点:对垂直和水平方向边缘响应更均衡。
  • 缺点:抗噪能力弱,边缘较模糊。
应用场景
  • 需要平衡各方向边缘响应的场景,如简单图像分割。

2.3. Laplacian 算子

原理
  • 核心思想:基于二阶导数检测边缘,直接寻找像素值的突变点(梯度变化率为零的点)。

  • 卷积核 (常用的两种):

    • 四邻域核:

      复制代码
      [ 0, -1,  0]
      [-1, 4, -1]
      [ 0, -1,  0]
    • 八邻域核(增强对角边缘响应):

      复制代码
      [-1, -1, -1]
      [-1,  8, -1]
      [-1, -1, -1]
  • 响应特点

    • 正梯度区域(亮变暗)和负梯度区域(暗变亮)均会产生高响应。
    • 边缘出现在过零点(Zero Crossing)附近。
步骤
  1. 对图像应用Laplacian核进行卷积。
  2. 检测过零点(需配合阈值判断)。
优缺点
  • 优点:能同时检测边缘方向和强度,对孤立点敏感。
  • 缺点:对噪声极度敏感,通常需先进行高斯滤波(如LOG算法,即Laplacian of Gaussian)。
应用场景
  • 结合高斯滤波后用于高精度边缘检测,如医学图像分析。

2.4. Canny 算法

原理

Canny算法是一种多步骤优化的边缘检测方法,综合了抗噪能力与边缘定位精度,是实际应用中的黄金标准。

步骤
  1. 高斯滤波

    • 用高斯核平滑图像,抑制噪声。

    • 高斯核示例(σ=1.4):

      复制代码
      [2, 4, 5, 4, 2]
      [4, 9,12, 9, 4]
      [5,12,15,12, 5]
      [4, 9,12, 9, 4]
      [2, 4, 5, 4, 2]
  2. 梯度计算

    • 使用Sobel算子计算水平梯度 G x G_x Gx 和垂直梯度 G y G_y Gy。
    • 梯度幅值 G = G x 2 + G y 2 G = \sqrt{G_x^2 + G_y^2} G=Gx2+Gy2 ,方向 θ = arctan ⁡ ( G y / G x ) \theta = \arctan(G_y / G_x) θ=arctan(Gy/Gx)。
  3. 非极大值抑制(NMS)

    • 在梯度方向上,仅保留幅值最大的像素点,抑制非极大值,使边缘变细。
  4. 双阈值处理

    • 高阈值( T high T_{\text{high}} Thigh):高于此值的像素为强边缘,直接保留。
    • 低阈值( T low T_{\text{low}} Tlow):介于高低阈值之间的像素为弱边缘,仅当与强边缘连通时才保留。
    • 典型阈值比例: T low = 0.4 × T high T_{\text{low}} = 0.4 \times T_{\text{high}} Tlow=0.4×Thigh,例如 T high = 100 T_{\text{high}}=100 Thigh=100, T low = 40 T_{\text{low}}=40 Tlow=40。
  5. 边缘连接

    • 通过形态学操作或连通性分析连接断裂的边缘。
优缺点
  • 优点:抗噪能力强,边缘连续且细。
  • 缺点:计算复杂度高,参数(高低阈值)需手动调整。
应用场景
  • 高精度边缘检测,如自动驾驶中的车道线识别、人脸轮廓提取。

2.5. Roberts 算子

原理
  • 核心思想:基于对角方向的一阶差分检测边缘。

  • 卷积核

    • 对角线核1:

      复制代码
      [1, 0]
      [0, -1]
    • 对角线核2:

      复制代码
      [0, 1]
      [-1, 0]
  • 梯度计算

    • G = ( G 1 2 + G 2 2 ) G = \sqrt{(G_1^2 + G_2^2)} G=(G12+G22) ,或近似为 ∣ G 1 ∣ + ∣ G 2 ∣ |G_1| + |G_2| ∣G1∣+∣G2∣。
优缺点
  • 优点:计算极快,适合资源受限场景。
  • 缺点:对噪声敏感,仅检测对角边缘。
应用场景
  • 简单实时系统,如嵌入式设备中的快速边缘检测。

算法对比总结

算法 抗噪能力 边缘粗细 计算速度 适用场景
Sobel 较粗 实时处理、工业检测
Prewitt 较粗 平衡各方向边缘
Laplacian 极弱 中等 高精度边缘(需滤波后)
Canny 高精度复杂场景
Roberts 极弱 极快 简单实时系统

实际应用建议

  1. 实时性要求高:选择Sobel或Roberts。
  2. 抗噪与精度平衡:优先使用Canny。
  3. 简单场景:尝试Laplacian结合高斯滤波(LOG算法)。
相关推荐
沅_Yuan5 小时前
基于小波神经网络(WNN)的回归预测模型【MATLAB】
深度学习·神经网络·matlab·回归·小波神经网络·wnn
视觉语言导航6 小时前
湖南大学3D场景问答最新综述!3D-SQA:3D场景问答助力具身智能场景理解
人工智能·深度学习·具身智能
Hi-Dison6 小时前
神经网络极简入门技术分享
人工智能·深度学习·神经网络
Panesle6 小时前
分布式异步强化学习框架训练32B大模型:INTELLECT-2
人工智能·分布式·深度学习·算法·大模型
契合qht53_shine8 小时前
深度学习 自然语言处理(RNN) day_02
rnn·深度学习·自然语言处理
白熊1888 小时前
【计算机视觉】OpenCV实战项目:基于Tesseract与OpenCV的字符识别系统深度解析
人工智能·opencv·计算机视觉
LuvMyLife9 小时前
基于Win在VSCode部署运行OpenVINO模型
人工智能·深度学习·计算机视觉·openvino
gaosushexiangji9 小时前
基于千眼狼高速摄像机与三色掩模的体三维粒子图像测速PIV技术
人工智能·数码相机·计算机视觉
六bring个六10 小时前
qtcreater配置opencv
c++·qt·opencv·计算机视觉·图形渲染·opengl
多巴胺与内啡肽.10 小时前
OpenCV进阶操作:光流估计
人工智能·opencv·计算机视觉