索贝尔算子(Sobel operator)是图像处理中的算子之一,主要用作边缘检测。在技术上,它是一离散性差分算子,用来运算图像亮度函数的梯度之近似值。在图像的任何一点使用此算子,将会产生对应的梯度矢量或是其法矢量。
该算子包含两组3x3的矩阵,分别为横向及纵向,将之与图像作平面卷积,即可分别得出横向及纵向的亮度差分近似值。如果以代表原始图像,及分别代表经横向及纵向边缘检测的图像,其公式如下:
图像的每一个像素的横向及纵向梯度近似值可用以下的公式结合,来计算梯度的大小。
然后可用以下公式计算梯度方向。
在以上例子中,如果以上的角度等于零,即代表图像该处拥有纵向边缘,左方较右方暗。
NI Vision Assistant中的索贝尔边缘检测算子
上图是NI视觉助手中的索贝尔算子,包含于滤波器中,主要作用是用于边缘检测。可以看到当使用了索贝尔算子后,左图中的原始图像的边缘被提取出来,然后其它非边缘特征则全部被置0。