图像边缘检测各种算子MATLAB实现以及实际应

梯度和拉普拉斯算子在图像边缘检测中的应用

  • 数学方法

边缘检测最通用的方法是检测灰度值的不连续性,这种不连续性用一阶和二阶导数来检测。

  1. (1)一阶导数:一阶导数即为梯度,对于平面上的图像来说,我们只需用到二维函数的梯度,即:  

    ,该向量的幅值:

    ,为简化计算,省略上式平方根,得到近似值

    ;或通过取绝对值来近似,得到:

(2)二阶导数:二阶导数通常用拉普拉斯算子来计算,由二阶微分构成:

  1. 边缘检测的基本思想:
  1. 寻找灰度的一阶导数的幅度大于某个指定阈值的位置;
  2. 寻找灰度的二阶导数有零交叉的位置。

  1. 几种方法简介
  1. Sobel边缘检测器:以差分来代替一阶导数。Sobel边缘检测器使用一个3×3邻域的行和列之间的离散差来计算梯度,其中,每行或每列的中心像素用2来加权,以提供平滑效果。

-1

-2

1

0

0

0

1

2

1

               

-1

0

1

-2

0

2

-1

0

1

                                              

  1. Prewitt边缘检测器:使用下图所示模板来数字化地近似一阶导数。与Sobel检测器相比,计算上简单一些,但产生的结果中噪声可能会稍微大一些。

-1

-1

-1

0

0

0

1

1

1

-1

0

1

-1

0

1

-1

0

1

  1. Roberts边缘检测器:使用下图所示模板来数字化地将一阶导数近似为相邻像素之间的差,它与前述检测器相比功能有限(非对称,且不能检测多种45°倍数的边缘)。

-1

0

0

1

0

-1

1

0

  1. Laplace边缘检测器:二维函数

    的拉普拉斯是一个二阶的微分定义:

模板算子可分为四邻域和八邻域,如下:

0

1

0

1

-4

1

0

1

0

(四邻域)

1

1

1

1

-8

1

1

1

1

(八邻域)

  1. LoG边缘检测器

由于噪声点(灰度与周围点相差很大的像素点)对边缘检测有一定的影响,所以效果更好的是LoG算子,即Laplacian-Guass算子。引入高斯函数来平滑噪声:

该函数的Laplace算子:

它把Guass平滑滤波器和Laplace锐化滤波器结合起来,先平滑掉噪声,再进行边缘检测,所以效果比单用Laplace算子要更为平滑,效果更好。

  1. Canny边缘检测器

主要分为以下几个步骤:①使用具有指定标准差的一个高斯滤波器来平滑图像,以减少噪声;②在每个点处计算局部梯度和边缘方向;③对步骤②中确定的边缘点产生梯度中的脊线顶部进行追踪,并将实际山不在脊线顶部的像素设置为零,从而在输出中给出一条细线(非最大值抑制),然后使用滞后阈值处理法对这些脊线像素进行阈值处理。最后进行边缘连接。

  • 实验结果

原始图像:

1.Roberts算子

2.Prewitt算子

3.Sobel算子

4.Laplace算子

(4邻域)

(8邻域)

  1. LoG

四种结果的比较:(Laplace采用8邻域模板)

图像来源:http://www.photophoto.cn/show/05248591.html(网行天下首页>>设计图库>>文化艺术>>插画集:《牧羊犬灰度》)

图像规格:800×677  格式:SVG  模式:RGB

硬件条件:

软件条件:运行环境:Matlab r2015b

三、讨论

  1. 各方法优缺点及比较:
  1. Roberts算子:Roberts算子是2×2算子,对具有陡峭的低噪声图像响应最好,并且检测垂直边缘的效果好于斜向边缘&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值