边缘检测一 一阶微分算子

目录

一、综述

二、Roberts算子

 三、Prewitt 算子

四、Sobel 算子


一、综述

      一阶微分算子一般借助空域微分算子通过卷集完成,但实际上数字图像中求导是利用差分近似微分来进行的。

      梯度对应一阶导数,梯度算子是一阶导数算子。对一个连续函数f(x,y),它在位置(x,y)梯度可表示为一个矢量:

边缘检测一 一阶微分算子

​      对于数字图像,导数可以用差分来近似,则梯度可以表示为:

边缘检测一 一阶微分算子

​      在实际中常用小区域模板卷积来近似计算。对Gx和Gy各用一个模板,所以需要两个模板组合起来构成一个梯度算子。根据模板的大小,其中元素(系数)值的不同,可以提出很多的模板,构成许多的检测算子。

 

二、Roberts算子

      由Roberts提出的算子是一种利用局部差分算子寻找边缘的算子,边缘的锐利程度由图像灰度的梯度决定。梯度是一个向量,∇ f指出灰度变化的最快的方向和数量。

​      因此最简单的边缘检测算子是用图像的垂直和水平差分来逼近梯度算子:

边缘检测一 一阶微分算子

      对每一个像素计算出以上式子的向量,求出它的绝对值,然后与阈值进行比较,利用这种思想就得到了Roberts交叉算子:

边缘检测一 一阶微分算子

​      另外还可以用Roberts最大值算子来计算:

​      上式能够提供较好的不变性边缘取向。对于同等长度但取向不同的边缘,应用Roberts 最大值算子比应用 Roberts 交叉算子所得到的合成幅度变化小。

      显然Roberts 一次微分不是沿 x 轴方向和 Y 轴方向微分,而是取旋转± 45 度两个方向微分值的和。

      下图阀值分别为:0.1、0.3、0.5、0.7;​

边缘检测一 一阶微分算子

边缘检测一 一阶微分算子

 

 三、Prewitt 算子

      Prewitt边缘检测算子使用两个有向算子(水平+垂直),每一个逼近一个偏导数,这是一种类似计算偏微分估计值的方法,x,y两个方向的近似检测算子为:、

边缘检测一 一阶微分算子

​      得出卷积模板为:

边缘检测一 一阶微分算子

       记图像M,阀值T

边缘检测一 一阶微分算子

 如在matlab中实现上述判断:

if(T> threshold)

    newGrayPic(i,j)=255;

else

    newGrayPic(i,j)=0;

end

      Prewitt边缘检测算子对噪声有抑制作用,抑制噪声的原理是通过像素平均,但是像素平均相当于对图像的低通滤波,所以Prewitt算子对边缘的定位不如Roberts算子。 

      下图阀值分别为:0.1、0.5、0.9、1.1;​​

边缘检测一 一阶微分算子

边缘检测一 一阶微分算子

 

四、Sobel 算子

      Sobel算子和Prewitt算子都是加权平均,但是Sobel算子认为,邻域的像素对当前像素产生的影响不是等价的,所以距离不同的像素具有不同的权值,对算子结果产生的影响也不同。一般来说,距离越远,产生的影响越小。

      Sobel 算子一种将方向差分运算与局部平均相结合的方法。该算子是在以f(x,y)为中心的3x3邻域上计算x和y方向的偏导数,即

边缘检测一 一阶微分算子

      得出卷积模板为:

边缘检测一 一阶微分算子

      记图像M,阀值T

边缘检测一 一阶微分算子

      下图阀值分别为:0.1、0.5、0.9、1.3;​

边缘检测一 一阶微分算子

边缘检测一 一阶微分算子