16. 边缘检测算子-sobel、canny、Laplacian等

边缘检测是图像处理的关键步骤,本文深入探讨Sobel和Canny算子。Sobel算子通过一阶导数检测边缘,简单快速但定位精度不高。Canny算子则涉及多阶段处理,包括高斯滤波、梯度计算、非极大值抑制和双阈值检测,提供更好的边缘检测效果。
摘要由CSDN通过智能技术生成

边缘检测是图像处理和计算机视觉中,尤其是特征提取中的一个研究领域。图像边缘检测大幅度的减少了数据量,并且剔除了可以认为不相关的信息,保留了图像重要的结构属性。边缘检测,就是找到原始图像中画面出现跳变的地方。这里的跳变,可以理解为相邻像素的像素值出现了较大的变化,而梯度方向为灰度最大变化率的方向(求导解决)。

  在实际的图像分割中,往往只用到一阶和二阶导数,虽然原理上,可以用更高阶的导数,但是因为噪声的影响,在纯粹二阶的导数操作中就会出现对噪声的敏感现象,三阶以上的导数信息往往失去了应用价值。二阶导数还可以说明灰度突变的类型。在某些情况下,如灰度变化均匀的图像,只利用一阶导数可能找不到边界,此时二阶导数就能提供很有用的信息。二阶导数对噪声也比较敏感,解决的方法是先对图像进行平滑滤波,消除部分噪声,再进行边缘检测。不过,利用二阶导数信息的算法是基于过零检测的,因此得到的边缘点数比较少,有利于后继的处理和识别工作。

边缘检测算子可分为以下几种:

  1. 一阶微分算子:Roberts交叉梯度算子 、Prewitt算子、Sobel算子、Scharr算子。
  2. 二阶微分算子:Laplacian算子、 LOG算子
  3. 非微分边缘检测算子:canny算子。

下面主要将canny算子和sobel算子的原理,其他算子只写出了实现函数.

1. sobel算子

1.1 概念:

索贝尔算子(Sobeloperator)主要用作边缘检测,在技术上,它是一离散性差分算子,用来运算图像亮度函数的灰度之近似值。在图像的任何一点使用此算子,将会产生对应的灰度矢量或是其法矢量。

1.2 原理:

Sobel算子根据像素点上下、左右邻点灰度加权差,在边缘处达到极值这一现象检测边缘.Sobel算子的俩个梯度矩阵Gx和Gy, Gx 用来计算横向的梯度, Gy 用来计算纵向的梯度。

具体公式如下:

原图中的作用点像素值通过卷积之后为:

可以化简成(为了提升效率):

如果梯度G大于阈值,这认为(x, y)是边缘点.

Sobel算子根据像素点上下、左右邻点灰度加权差,在边缘处达到极值这一现象检测边缘。对噪声具有平滑作用,提供较为精确的边缘方向信息,边缘定位精度不够高。Sobel算子检测方法对灰度渐变和噪声较多的图像处理效果较好,sobel算子对边缘定位不是很准确,图像的边缘不止一个像素;当对精度要求不是很高时,是一种较为常用的边缘检测方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值