图像的边缘是图像的最基本特征。所谓边缘(或边沿)是指其周围像素灰度有阶跃性变化或屋顶状变化的那些像素的集合。边缘广泛存在于物体与背景之间、物体与物体之间、基元与基元之间。因此,它是图像分割所依赖的重要特征。在本节将介绍图像边缘的检测和提取技术。
物体的边缘是由灰度不连续性所反映的。经典的边缘提取方法是考察图像的每个像素在某个邻域内灰度的变化,利用边缘邻近一阶或二阶方向导数变化规律,用简单的方法检测边缘。这种方法称为边缘检测局部算子法。
边缘可以分为两种:一种称为阶跃性边缘,它两边的像素的灰度值有着显著的不同;另一种称为屋顶状边缘,它位于灰度值从增加到减少的变化转折点。图4-31中分别给出了这两种边缘的示意图及相应的一阶方向导数、二阶方向导数的变化规律。对于阶跃性边缘,二阶方向导数在边缘处呈零交叉;而对于屋顶状边缘,二阶方向导数在边缘处取极值。
图4-31 阶跃性边缘和屋顶状边缘处一阶及二阶导数变化规律
如果一个像素落在图像中某一个物体的边界上,那么它的邻域将成为一个灰度级的变化带。对于这种变化最有用的两个特征是灰度的变化率和方向,它们分别以梯度向量的幅度和方向来表示。
边缘检测算子检查每个像素的邻域,并对灰度变化率进行量化,也包括方向的确定。大多数使用基于方向导数掩模求卷积的方法。
下面介绍几种常用的边缘检测算子。
1.Robert边缘检测算子
Robert边缘检测算子是一种利用局部差分算子寻找边缘的算子。它由下式给出:
式中,f(x,y)是具有整数像素坐标的输入图像,平方根运算使该处理类似于在人类视觉系统中发生的过程。
2.Sobel边缘检测算子
图4-32所示的两个卷积核形成了Sobel边缘检测算子,图像中的每个点都用这两个合作卷积,一个核对通常的垂直边缘响应最大,而另一个对水平边缘响应最大。两个卷积的最大值作为该点的输出位。运算结果是一幅边缘幅度图像。
3.Prewitt边缘检测算子
图4-33所示的两个卷积核形成了Prewitt边缘检测算子。和使用Sobel边缘检测算子的方法一样,图像中的每个点都用这两个和进行卷积,取最大值作为输出。Prewitt边缘检测算子也产生一幅边缘幅度图像。
图4-32 Sobel边缘检测算子
图4-33 Prewitt边缘检测算子
4.Kirsch边缘检测算子
图4-34所示的8个卷积核组成了Kirsch边缘检测算子。图像中的每个点都用8个掩模进行卷积,每个掩模都对某个特定边缘方向作出最大响应,所有8个方向中的最大值作为边缘幅度图像的输出。最大响应掩模的序号构成了边缘方向的编码。
图4-34 Kirsch边缘检测算子(www.xing528.com)
拉普拉斯边缘检测算子是对二维函数进行运算的二阶导数算子。通常使用的拉普拉斯边缘检测算子如图4-35所示。
图4-35 拉普拉斯边缘检测算子
由于拉普拉斯边缘检测算子是一个二阶导数,它将在边缘处产生一个陡峭的零交叉,如图4-31所示。
由于噪声点对边沿检测有一定的影响,所以高斯-拉普拉斯边缘检测算子是效果较好的边沿检测器。它把高斯平滑滤波器和拉普拉斯锐化滤波器结合了起来,先平滑掉噪声,再进行边沿检测,所以效果更好。常用的高斯-拉普拉斯边缘检测算子是5×5的模板:
图4-36 高斯-拉普拉斯算子
a)脉冲响应 b)传递函数
6.边缘检测器性能
上述边缘检测算子产生的边缘图像看来很相似,因此它们看起来像一个绘画者从图片中做出的线条画。Robert边缘检测算子是2×2算子,对具有陡峭的低噪声图像响应最好。其他三个边缘检测算子都是3×3算子,对灰度渐变和噪声较多的图像处理得较好。
使用两个掩模板组成的边缘检测器时,通常取两个掩模检测所得的结果中幅度较大的作为输出值。这使得它们对边缘的走向有些敏感,取它们的二次方和的平方根,可以获得性能更一致的与真实的梯度更接近的全方位响应。
边缘检测的几个示例,如图4-37、图4-38所示。
图4-37 边缘检测示例
a)原始图像:显微镜下看到的细菌 b)用Robert边缘检测算子进行处理的结果 c)用Prewitt边缘检测算子处理的结果 d)用高斯-拉普拉斯边缘检测算子处理的结果
由于Prewitt边缘检测算子并不是各向同性的,所以图c中看到的边缘并不是完全连通的,有一定程度的断开;而使用Robert和高斯-拉普拉斯边缘检测算子就不存在这样的问题。在图4-38中,将看到Sobel边缘检测算子也存在类似的问题。解决这个问题的方法是把它扩展成八个方向的Sobel和Prewitt边缘检测算子,并且可以像使用Kirsch边缘检测算子一样获得边缘方向图;或者使用各向同性的Sobel边缘检测算子。
图4-38 边缘检测示例
a)原始图像:血细胞 b)用Robert边缘检测算子进行处理的结果 c)用Kirsch边缘检测算子处理的结果 d)用高斯-拉普拉斯边缘检测算子处理的结果 e)原始图像 f)用Robert边缘检测算子处理的结果 g)用Prewitt边缘检测算子处理的结果 h)用Sobel边缘检测算子处理的结果
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。