边缘检测,Roberts 算子,Sobel算子,Canny 算子

来源:互联网 发布:异次元杀阵2解析知乎 编辑:程序博客网 时间:2024/05/08 14:34


边缘检测

        在图像中,边缘是图像局部强度变化最明显的地方,它主要存在于目标与目标、目标与背景、区域与区域之间。边缘表明一个特征区域的终结和另一特征区域的开始。边缘所分开区域的内部特征或属性是一致的,而不同的区域内部特征或属性是不同的。

    边缘检测可分为滤波、增强、检测、定位四个步骤。在图像的边缘检测中也需要对其进行滤波,这样能够消除一些噪声,对于接下来的导数计算影响比较大。而一般使用的导数主要为一阶导数和二阶导数。通过导数对图像的计算来增强图像的突出边缘和轮廓,以达到检测定位的效果。

1 一阶微分算子

1)Roberts 算子

Roberts 算子是一种利用局部差分算子寻找边缘的算子:

其中,f(x,y)、f(x+1,y)、f(x,y+1)和f(x+1,y+1)分别为4领域的坐标,且是具有整数像素坐标的输入图像。

Robert算子是2x2算子模板。下图所示的2个卷积核形成Roberts算子。图像中的每一个点都用这2个核做卷积。(中间两格忽略)    
  -1 0 0-101 10

Roberts 算子在边缘检测的效果中由于没有经过图像平滑处理的,因此图像噪声一般得不到很好的抑制,也因此影响到计算定位时容易丢失一部分的边缘。但是Roberts 算子的定位精度较高,对具有陡峭的低噪声图像响应较好。

2)Sobel算子:

Sobel算子是一种一阶微分算子,它能根据像素点周围的梯度值来计算该像素点的梯度,之后会根据事先设好的阈值比较,来进行取舍。它由下式给出:

 

Sobel算子是3x3算子模板。下图所示的2个卷积核dx、dy形成Sobel算子。一个核通常的垂直边缘响应最大,而另一个核对水平边缘响应最大。2个卷积的最大值作为该点的输出值。运算结果是一幅边缘幅度图像。-101 121-202 000-101 -1-2-1

3)Canny 算子:

传统的Canny算法是通过在2x2邻域内求有限差分来计算梯度幅值。Canny算子法实现的方式为:图像先用2D高斯滤波模板进行卷积以消除噪声,再对滤波后图像中的每个像素计算其梯度的大小和方向。计算可采用以下2x2大小的模板作为对x方向和y方向偏微分的一阶近似:

          

由此得到梯度的大小M和方向θ:

      

通过梯度的方向,可以找到这个像素梯度方向的邻接像素:3210x0123

最后通过非最大值抑制以及阈值化和边缘连接。Canny算子具有信噪比准则、定位精度准则和单边缘响应准则。它是一阶传统微分中检测边缘效果最好的算子之一,它比Prewitt 算子、Sobel 算子的去噪能力都要强,但它也容易平滑掉一些边缘信息,其检查方法较为复杂。

                               

比较:原图   ,Roberts算子,Sobel算子,Canny算子




0 0
原创粉丝点击