2微分算子
图2.1给出了几种典型的边缘及其相应的一阶导数和二阶导数。对于斜坡型边缘,在灰度斜坡的起点和终点,其一阶导数均有一个阶跃,在斜坡处为常数,其它地方为零;其二阶导数在斜坡起点产生一个向上的脉冲,在终点产生一个向下的脉冲,其它地方为零,在两个脉冲之间有一个过零点,可以确定边缘的中心位置。对应线状型边缘,在边缘的起点和终点处,其一阶导数都有一个阶跃,分别对应极大值和极小值;在边缘的起点与终点处,其二阶导数都对应一个向上的脉冲,在边缘中心对应一个向下的脉冲,在边缘中心两侧存在两个过零点。因此,通过检测二阶差分的两个过零点,就可以确定线状型边缘的范围;检测二阶差分的极小值,可以确定边缘中心位置。屋顶型边缘的一阶导数和二阶导数与线状型类似,通过检测其一阶导数的过零点可以确定屋顶的位置。
由上述分析可以得出以下结论:一阶导数的幅度值可以用来检测边缘的存在;通过检测二阶导数的过零点可以确定边缘的中心位置;利用二阶导数在过零点附近的符号可以确定边缘像素位于边缘的暗区还是亮区。另外,一阶导数和二阶导数对噪声非常敏感,尤其是二阶导数。因此,在边缘检测之前应考虑图像平滑,减弱噪声的影响。在数字图像处理中,常利用差分近似微分来求取导数。边缘检测可借助微分算子在空间域通过模板卷积来实现。
2.2边缘检测基本思想
边缘检测的基本思想是首先利用边缘增强算子,突出图像中的局部边缘,然后定义像素的"边缘强度",通过设置阈值的方法提取边缘点集 。但是由于噪声和图像模糊的原因,检测到的边界可能会有间断的情况发生,所以边缘检测包含2 个内容:
(1)用边缘算子提取边缘点集。
(2)在边缘点集合中去除某些边缘点并填充一些边缘点,将得到的边缘点集连接为线。
2.3边缘检测算法
2.3.1边缘检测算法步骤
边缘检测算法包含有以下四个步骤:
(1)滤波 边缘检测算法主要是基于图像强度的一阶和二阶导数,但导数的计算对噪声很敏感,因此必须使用滤波器来改善与噪声有关的边缘检测器的性能。需要指出 ,大多数滤波器在降低噪声的同时也导致了边缘强度的损失。因此增强边缘和降低噪声之间需要折中。
(2)增强 增强边缘的基础是确定图像各点邻域强度的变化值 ,增强算法可以将邻域(或局部)强度值有显著变化的点显现出来,边缘增强一般是通过计算梯度幅值来完成的。
(3)检测 在图像中有许多点的梯度幅值比较大,而这些点在特定的应用领域中并不都是边缘,所以应该用某种方法来确定哪些点是边缘点。最简单的边缘检测判据是梯度幅值阈值判据。
(4)定位 如果某一应用场合要求确定边缘位置,则边缘的位置可在子像素分辨率上来估计,边缘的方位也可以被估计出来。
2.3.2边缘检测算法流程图
边缘检测流程图比较形象直观地描述了边缘检测的步骤,通过滤波、增强、检测、定位来达到边缘检测的目的。
2.4边缘检测算法中算子的分类
在大部分情况下,都是把图像的边缘全部看作是阶梯形边缘, 然后求得检测这种边缘的各种最优滤波器,用于实践中。边缘检测主要是(图像的)灰度变化的度量、检测和定位。有很多种不同的边缘检测方法,同一种方法使用的滤波器也不尽相同。边缘检测就是研究更好的边缘检测方法和检测算子。检测出的边缘并不等于实际目标的真实边缘。由于图像数据是二维的,而实际物体是三维的,从三维到二维的投影必然会造成信息的丢失,再加上成像过程中的光照不均和噪声等原因的影响,使得有边缘的地方不一定能被检测出来,而检测出来的边缘也不一定代表实际边缘。这就需要我们根据不同类型的图像,来选取合适的边缘检测算子。就一些经典的边缘检测算子分类,如图2.3。
2.5经典边缘检测算子
2.5.1 Roberts边缘检测算子
1、理论基础[3]
Roberts边缘算子采用的是对角方向相邻的两个像素之差。从图像处理的实际效果来看,边缘定位准,对噪声敏感。Roberts边缘检测算子是一种利用局部差分算子寻找边缘的算子,它有下式给出。
Roberts算子: (3-1)
(3-2)
其中表示处理后点的灰度值,表示处理前该点的灰度值。是具有整数像素坐标的输入图像,平方根运算使该处理类似于在人类视觉系统中发生的是过程。
该算法的算子如下:
(3-3)
2.5.2 Sobel边缘检测算子
理论基础:
(1)卷积
卷积可以简单的看成加权求和的过程。卷积时使用的权用一个很小的矩阵来表示,矩阵的大小是奇数,而且与使用的区域的大小相同。这种权矩阵叫做卷积核,区域中的每一个像素分别与卷积核中的每个元素相乘,所有乘积之和即区域中心像素的新值。比如,对于一个3×3的区域p与卷积核k卷积后,区域p的中心像素p5表示如下:
(3-4)
其中 (3-5)
卷积核中各元素叫做卷积系数。卷积核中卷积系数的大小、方向及排列次序决定了卷积的图像处理效果。大多数常用的卷积核都是3×3的,所有的卷积核的行、列都是奇数。进行卷积时会遇到一些复杂的问题,首先是图像边界的问题。当在图像上逐个移动卷积核时,只要卷积核移动到了图像边界,即卷积核悬挂在图像边界上时,就会出现计算上的问题。这时在原图像上就不能完整的找到与卷积核中系数相对应的9个图像像素。解决这个问题的两个简单方法是:或者忽略图像边界数据,或者在图像的四周复制图像的边界数据。
Sobel边缘检测算子是先做加权平均再微分,然后求梯度,即
(3-6)
(3-7)
(3-8)
以下两个卷积核形成了Sobel边缘检测算子,图中的每个点都用这两个核做卷积,一个核对通常的垂直边缘影响很大,而另一个对水平边缘影响很大。边缘检测算子的中心与中心像素相对应,进行卷积运算。两个卷积核的最大值作为该点的输出位。运算结果是一幅边缘幅度图像。在边缘检测中,Sobel算子对于像素的位置的影响做了加权,加权平均边宽像素,因此效果更好。
(3-9)
2.5.3 Prewitt边缘检测算子
理论基础
以下两个卷积核形成了Prewitt边缘检测算子。同使用的Sobel算子的方法一样,图像中的每个点都用这两个核进行卷积,取最大值作为输出。Prewitt边缘检测算子也产生一幅边缘增强图像。Prewitt边缘检测算子为:
(3-10)
除此之外,还有Krish边缘检测算子、拉普拉斯边缘检测算子、Canny边缘检测算子等都是比较常用的图像边缘检测算子。
上一篇:
基于VC和SQL数据库的通讯录系统研究(2003doc)
下一篇:
采用VC的伺服电机控制毕业论文(2003doc)