目录
sobel算子包含2组3x3的矩阵,分别为横向和纵向模板,将之与图像作平面卷积,即可分别得出横向及纵向的亮度差分近似值
一、sobel算子的简单描述
Sobel算子是一种常用的边缘检测算法,它通过计算图像灰度函数的一阶离散差分值来提取图像中的边缘信息。
在实际操作中,Sobel算子将图像中的每个像素点分别对应到-1、0、+1三个方向上,通过对这三个方向上的灰度值求和并取绝对值,最后比较这个值与预设的阈值的关系,来得到边缘信息。
二、sobel算子的原理
具体来说,Sobel算子以两个称为水平梯度(Gx)和垂直梯度(Gy)的滤波器组来处理图像。当图像的像素灰度值发生变化时,水平梯度和垂直梯度会发生变化。
水平梯度模板和垂直梯度模板是3x3的卷积核,以图像中的每个像素点作为中心,分别横向和纵向卷积图像。将每个像素处的水平和垂直梯度值进行组合计算
实际计算过程
经过整个计算过程,就可以得到每个像素点的边缘信息,也就是所谓的Sobel算子边缘图像。
sobel算子包含2组3x3的矩阵,分别为横向和纵向模板,将之与图像作平面卷积,即可分别得出横向及纵向的亮度差分近似值
检测水平方向
检测垂直方向
注意:白色到黑色计算结果为正数,黑色到白色计算结果为负数,负数用0表示
sobel算子优缺点
1.优点
1.计算简单,速度快:因为Sobel算子只采用了两个方向的模板,所以其计算速度相对较快,且算法较为简单。
2.对噪声具有平滑作用:由于Sobel算子在计算边缘时,同时考虑了像素点上下、左右邻点灰度加权差,所以其对噪声具有平滑作用,能很好的消除噪声的影响。
3.提供较为精确的边缘方向信息:Sobel算子能够较为精确地确定出图像边缘的方向。
2.缺点
1.检测出的边缘容易出现多像素宽度:由于Sobel算子是利用像素点上下、左右邻点灰度加权差来检测边缘的,因此其检测出的边缘可能会出现多像素宽度,影响边缘检测的精度。
2.对于纹理较为复杂的图像,边缘检测效果不理想:因为Sobel算子只采用了两个方向的模板,所以对于纹理较为复杂的图像,其边缘检测效果可能会出现偏差,不够理想。
3.判断边缘点欠合理:Sobel算子判断边缘点时,将灰度新值大于或等于阈值的像素点都认为是边缘点,这种判断方法欠合理,会造成边缘点的误判。