图像边缘检测-Sobel算子

来源:互联网 发布:淘宝手机端怎么排名 编辑:程序博客网 时间:2024/05/23 01:20

边缘检测利用图像一 阶导数的极值或者二阶导数的过零点信息来提取边缘。具体地说,对于图像中变化比较缓慢的区域,相邻像素的灰度变化不大,因而梯度幅值较小(趋于零) ,而在图像的边缘地带,相邻像素的灰度变化剧烈,所以梯度幅值较大,因此用一阶导数幅值的大小可以确定边缘位置。同理,二阶导数的符号可以用来判断一个像素是在边缘亮的一边还是暗的一边,过零点的位置就是边缘位置 。

Sobel算子是一种利用局部差分寻找边缘的算子。它考虑了图像3x3邻域的处理
Sobel算子由两个3x3的卷积核构成,分别为横向及纵向,将图像中的每个像素分别和这两个卷积核做卷积

这里写图片描述

如果以A代表原始图像,Gx及Gy分别代表经横向及纵向边缘检测的图像灰度值,其公式如下:

这里写图片描述

图像的每一个像素的横向及纵向灰度值通过以下公式结合,来计算该点灰度的大小:

这里写图片描述

通常,为了提高效率 使用不开平方的近似值:

这里写图片描述

或者直接取最大值:

这里写图片描述

如果梯度G大于某一阀值 则认为该点(x,y)为边缘点。
然后可用以下公式计算梯度方向:

这里写图片描述

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

这里写代码片
0 0