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算法)。
相关推荐
巷9551 小时前
深入理解卷积神经网络(CNN):从原理到实践
人工智能·神经网络·cnn
知来者逆1 小时前
计算机视觉——基于MediaPipe实现人体姿态估计与不良动作检测
人工智能·深度学习·计算机视觉·mediapipe·姿态估计·人体姿态
七七知享2 小时前
Python深度学习实现验证码识别全攻略
开发语言·python·深度学习·程序人生·程序员·开发·验证码
满天星耶2 小时前
机器学习数据特征处理,鸢尾花案例,数字识别案例
图像处理·人工智能·机器学习·计算机视觉·数据分析·近邻算法
契合qht53_shine3 小时前
深度学习 从入门到精通 day_01
人工智能·深度学习
乌旭4 小时前
GPU虚拟化技术在深度学习集群中的应用实践
数据结构·人工智能·深度学习·机器学习·ai·架构·gpu算力
风筝超冷4 小时前
面试篇 - GPT-3(Generative Pre-trained Transformer 3)模型
深度学习·gpt-3·transformer
张焚雪5 小时前
关于ResNet和FPN的一份介绍
人工智能·深度学习·神经网络·机器学习·cnn
AI技术控5 小时前
计算机视觉算法实现——家庭安防系统设计
深度学习