必威体育Betway必威体育官网
当前位置:首页 > IT技术

[图像处理] Sobel边缘检测算法

时间:2019-07-11 02:40:00来源:IT技术作者:seo实验室小编阅读:55次「手机版」
 

sobel算子

完成时间:2017/1/23 

我的实现结果如下:(图一为原图,图二为边缘检测结果)

       

      

关于sobel算子(英文部分来源于Wikipedia)

 The Sobel operator, sometimes called the Sobel–Feldman operator or Sobel filter, is used inimage processing and computer vision, particularly within edge detection algorithms where it creates an image emphasising edges. It is named after Irwin Sobel and Gary Feldman, colleagues at the Stanford Artificial intelligence Laboratory (SaiL).

Sobel算子,也被称为Sobel-Feldman算子,或者Sobel滤波,是在图像处理和计算机视觉得到广泛应用的一种图像边缘检测算法。它由斯坦福大学人工智能实验室(SAIL)的Irwin Sobel和Gray Feldman而得名(在此膜拜数学大神!)。

The operator uses two 3×3 kernels which are convolved with the original image to calculate APProximations of the derivatives – one for horizontal changes, and one for vertical. If we define A as the source image, and Gx and Gy are two images which at each point contain the horizontal and vertical derivative approximations respectively, the computations are as follows:

  Sobel算子使用两个(3x3)矩阵来对原图进行卷积运算以计算出两个方向的灰度差分(偏导)的估计值(一个水平方向、一个竖直方向)。我们假定A是原始图像(彩色图像需先转换为灰度图像)Gx和Gy分别是在横向及纵向的灰度偏导的近似值(即两个方向上对原图的平面卷积结果)。数学表达如下:

对应的计算过程如下:

     Gx = [ f(x+1,y-1)+2*f(x+1,y)+f(x+1,y+1)] - [f(x-1,y-1)+2*f(x-1,y)+f(x-1,y+1) ]

Gy = [ f(x-1,y-1) + 2f(x,y-1) + f(x+1,y-1)] - [f(x-1, y+1) + 2*f(x,y+1)+f(x+1,y+1) 

  上式中,f(x,y)为图像A中(x,y)处的灰度值。由此便可以计算出每个点的Gx和Gy。

  At each point in the image, the resulting gradient approximations can be combined to give the gradient magnitude, using:

 对于图像中的每个点,其梯度的估计值G便可以通过两个方向的梯度Gx和Gy借由下式得出:

 此时,我们只需要设定一个阈值Gmax(比如说:100,一般来讲0-255左右为宜),若梯度G大于阈值Gmax,则可认为该点是一个边界点

 Using this information, we can also calculate the gradient's direction:

 当然,我们甚至可以通过Gx和Gy求得边界点梯度变化的方向,只需应用下式即可。

 

相关阅读

分享到:

栏目导航

推荐阅读

热门阅读