VC++数字图像边缘检测算法研究与实现(3)_毕业论文

毕业论文移动版

毕业论文 > 计算机论文 >

VC++数字图像边缘检测算法研究与实现(3)


图像边缘检测大幅度地减少了数据量,并且剔除了可以认为不相关的信息,保留了图像重要的结构属性。
2  图像边缘检测
2.1边缘检测
2.1.1边缘检测概念
图像的边缘是图像最基本的特征,它是灰度不连续的结果。通过计算一阶导数或者二阶导数可以方便检测出图像中每个像素在其领域内的灰度变化,从而检测出边缘。图像中具有不同灰度的相邻区域之间总存在边缘。常见的边缘类型有斜坡型、线状型和屋顶型。阶跃型边缘是一种理想的边缘,由于采样等缘故,边缘处总有一些模糊,因而边缘处会有灰度斜坡,形成了斜坡边缘。斜坡边缘的坡度与被模糊的程度成反比,模糊程度高的边缘往往表现为厚边缘。线状型边缘有一个灰度突变,对应图像中的细线条;而屋顶型边缘两侧的灰度坡度相对平缓,对应粗边缘[2]。
2.1.2微分算子
图2.1给出了几种典型的边缘及其相应的一阶导数和二阶导数。对于斜坡型边缘,在灰度斜坡的起点和终点,其一阶导数均有一个阶跃,在斜坡处为常数,其它地方为零;其二阶导数在斜坡起点产生一个向上的脉冲,在终点产生一个向下的脉冲,其它地方为零,在两个脉冲之间有一个过零点,可以确定边缘的中心位置。对应线状型边缘,在边缘的起点和终点处,其一阶导数都有一个阶跃,分别对应极大值和极小值;在边缘的起点与终点处,其二阶导数都对应一个向上的脉冲,在边缘中心对应一个向下的脉冲,在边缘中心两侧存在两个过零点。因此,通过检测二阶差分的两个过零点,就可以确定线状型边缘的范围;检测二阶差分的极小值,可以确定边缘中心位置。屋顶型边缘的一阶导数和二阶导数与线状型类似,通过检测其一阶导数的过零点可以确定屋顶的位置。
由上述分析可以得出以下结论:一阶导数的幅度值可以用来检测边缘的存在;通过检测二阶导数的过零点可以确定边缘的中心位置;利用二阶导数在过零点附近的符号可以确定边缘像素位于边缘的暗区还是亮区。另外,一阶导数和二阶导数对噪声非常敏感,尤其是二阶导数。因此,在边缘检测之前应考虑图像平滑,减弱噪声的影响。在数字图像处理中,常利用差分近似微分来求取导数。边缘检测可借助微分算子在空间域通过模板卷积来实现。
2.2边缘检测基本思想
边缘检测的基本思想是首先利用边缘增强算子,突出图像中的局部边缘,然后定义像素的“边缘强度”,通过设置阈值的方法提取边缘点集 。但是由于噪声和图像模糊的原因,检测到的边界可能会有间断的情况发生。
2.3边缘检测算法
2.3.1边缘检测算法步骤
边缘检测算法包含有以下四个步骤:
(1)滤波 边缘检测算法主要是基于图像强度的一阶和二阶导数,但导数的计算对噪声很敏感,因此必须使用滤波器来改善与噪声有关的边缘检测器的性能。需要指出 ,大多数滤波器在降低噪声的同时也导致了边缘强度的损失。因此增强边缘和降低噪声之间需要折中。
(2)增强 增强边缘的基础是确定图像各点邻域强度的变化值 ,增强算法可以将邻域(或局部)强度值有显著变化的点显现出来,边缘增强一般是通过计算梯度幅值来完成的。
(3)检测 在图像中有许多点的梯度幅值比较大,而这些点在特定的应用领域中并不都是边缘,所以应该用某种方法来确定哪些点是边缘点。最简单的边缘检测判据是梯度幅值阈值判据。
(4)定位 如果某一应用场合要求确定边缘位置,则边缘的位置可在子像素分辨率上来估计,边缘的方位也可以被估计出来。
2.3.2边缘检测算法流程图 (责任编辑:qin)