当前位置:文档之家› 图像边缘检测程序

图像边缘检测程序

图像边缘检测程序*******************实践教学*******************兰州理工大学计算机与通信学院2012年秋季学期图像处理综合训练题目:图像边缘检测程序设计专业班级:姓名:学号:指导教师:成绩:目录摘要 (1)一、前言 (2)二、算法分析与描述 (3)三、详细设计过程 (7)四、调试过程中出现的问题及相应解决办法 (11)五、程序运行截图及其说明 (12)六、简单操作手册 (15)设计总结 (18)参考资料 (19)致谢 (20)附录 (21)摘要图像处理就是对图像信息加工以满足人的视觉心理或应用需求的方法。

图像处理方法有光学方法和电子学方法。

数字图像处理是利用数字计算机或其它的硬件设备对图像信息转换而得到的电信号进行某些数学处理以提高图像的实用性。

边缘检测是目前图像分析领域中的基础技术,也是数字图像处理中的一项重要内容。

它利用图像一阶倒数的极值或二阶倒数的过零点信息来提取边缘。

本文对图像边缘检测的几种经典算法包括一阶微分的Sobel算子、Robert算子、Priwitt算子,二阶微分laplacian算子及Canny算子。

通过实例图像对不同边缘检测算法的效果进行分析,比较了不同算法的特点和适用范围。

关键词:图像处理;边缘检测;一阶微分;二阶微分一、前言在实际图像边缘检测问题中图像的边缘作为图像的一种基本特征经常被应用到较高层次的图像应用中去。

它在图像识别图像分割图像增强以及图像压缩等的领域中有较为广泛的应用也是它们的基础。

图像边缘是图像最基本的特征之一往往携带着一幅图像的大部分信息。

而边缘存在于图像的不规则结构和不平稳现象中也即存在于信号的突变点处这些点给出了图像轮廓的位置。

这些轮廓常常是我们在图像边缘检测时所需要的非常重要的一些特征条件这就需要我们对一幅图像检测并提取出它的边缘。

边缘是以图像的局部特征不连续的形式出现的,也就是指图像局部亮度变化最显著的部分,同时边缘也是不同区域的分界处。

边缘检测是图像特征提取的重要技术之一,边缘常常意味着一个区域的终结和另一个区域的开始。

图像的边缘包含了物体形状的重要信息,它不仅在分析图像时大幅度地减少了要处理的信息量,而且还保护了目标的边界结构,它对于我们进行高层次的特征描述、识别和理解等有着重大的影响。

又由于边缘检测是图像分割、目标区域的识别、区域形状提取等图像分析领域十分重要的基础,是图像识别中提取图像特征的一个重要属性。

图像理解和分析的第一步往往就是边缘检测。

在工程应用中占有十分重要的地位,所以人们一直在致力于研究和解决如何构造出具有良好性质及好的效果的边缘检测算子的问题。

本次的目的是从理论上对几种经典的边缘检测算法(Sobel算子、Robert 算子、Priwitt算子、laplacian算子及Canny算子)进行分析,并用实现这些算法。

最后,通过实例图像对不同边缘检测算法的效果进行分析,找出各种算法的适用范围。

二、算法分析与描述2.1基于一阶微分的边缘的检测 1、Sobel 算子Sobel 算子和P rew it t 算子都是一阶的微分算子,都是先对图像进行平滑处理, 虽然两者都是加权平均滤波, 但是前者邻域的像素对当前像素产生的影响不是等价的, 距离不同的像素具有不同的权值, 对算子结果产生的影响也不同。

这两种算子对噪声都有一定的抑制作用, 但不能完全排除检测结果中出现虚假边缘的情况。

这两者对灰度渐变低噪声的图像有较好的检测效果, 但是对于混合多复杂噪声的图像处理效果就不理想了。

正如前面所讲,采用33⨯邻域可以避免在像素之间内插点上计算梯度.考虑一下上图中所示的点[,]i j 周围点的排列.Sobel 算子也是一种梯度幅值,M s s x y=+22(1.1) 其中的偏导数用下式计算:)()()()(456210670432a ca a a ca a s a ca a a ca a s y x ++-++=++-++= (1.2)其中常数2=c和其他的梯度算子一样,s x 和s y 可用卷积模板来实现,如图1.1所示:101202101---=x s 1210121---=y s图1.1请注意这一算子把重点放在接近于模板中心的像素点.Sobel 算子是边缘检测器中最常用的算子之一.45637210],[a a a a j i a a a a (图1.2)图1.2 用于说明Sobel算子和Prewitt算子的邻域像素点标记 Prewitt算子与Sobel算子的方程完全一样,只是常量c=1.所以111111---=xs111111---=ys (1.3)请注意,与Sobel算子不同,这一算子没有把重点放在接近模板中心的像素点如图1.3所示2、Robert算子Robert算子边缘检测算子也叫交叉差分算子,是一种利用局部差分寻找边缘的算子,用22⨯领域的处理。

边缘,是指周围像素灰度有阶跃变化或屋顶等变化的那些像素的集合。

图像的边缘对应着图像灰度的不连续性。

显然图像的边缘很少是从一个灰度跳到另一个灰度这样的理想状况。

真实图像的边缘通常都具有有限的宽度呈现出陡峭的斜坡状。

边缘的锐利程度由图像灰度的梯度决定。

梯度是一个向量,∇f指出灰度变化最快的方向和变化量。

),(fyfxf∂∂∂∂=∇ (1.5)22⎪⎪⎭⎫⎝⎛∂∂+⎪⎭⎫⎝⎛∂∂=∇yfxff(1.6)⎪⎪⎪⎭⎫⎝⎛∂∂∂∂=xfyfθ (1.7)梯度大小由确定。

而梯度方向则由确定,因此最简单的边缘检测算子是用图像的垂直和水平差分来逼近梯度算子:()()))1,(),(,,1,(----=∇yxfyxfyxfyxff (1.8)因此当我们寻找边缘的时候,最简单的方法是对每一个像素计算出(1.8)的向量,然后求出它的绝对值。

利用这种思想就得到了Roberts算子:2122})],1()1,([)]1,1(),({[),(y x f y x f y x f y x f y x g +-++++-= (1.9) 其中f(x,y)是具有整数像素坐标的输入图像。

其中g(x,y)由下面的模板计算:G x =-101G y =-0110(1.3) 同前面的22⨯梯度算子一样,差分值将在内插点[x+1/2;y+1/2]处计算.Roberts 算子是该点连续梯度的近似值,而不是所预期的点[x,y]处的近似值。

3、laplacian 算子平滑过的阶跃边缘二阶导数是一个在边缘点处过零的函数。

拉普拉斯算子是二阶导数边缘算子。

函数),(y x f 的拉普拉斯算子公式为∇=+22222f f x fy∂∂∂∂ (1.7)使用差分方程对x 和y 方向上的二阶偏导数近似如下:5 (1.8)这一近似式是以点[x,y+1]为中心的。

用y-1替换y ,得到=22x f∂∂]1,[]),[2]1,[(-+-+j i f j i f j i f (1.9) 它是以点[,]i j 为中心的二阶偏导数的理想近似式,类似地,=22yf∂∂],1[]),[2],1[(j i f j i f j i f -+-+ (1.10)把这两个式子合并为一个算子,就成为下面能用来近似拉普拉斯算子的模板:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-≈∇010******* (1.11)当拉普拉斯算子输出出现过零点时就表明有边缘存在,其中忽略无意义的过零点(均匀零区)。

原则上,过零点的位置精度可以通过线性内插方法精确到子像素分辨率,不过由于噪声,结果可能不会很精确。

4.Canny 算子检测阶跃边缘的基本思想是在图像中找出具有局部最大梯度幅值的像素点。

检测阶跃边缘的大部分工作集中在寻找。

Canny 边缘检测器是高斯函数的一阶导数,是对信噪比与定位之乘积的最优化逼近算子[Canny 1986]。

我们将通过下面的符号对Canny 边缘检测器算法作一概括说明。

用],[j i I 表示图像,使用可分离滤波方法求图像与高斯平滑滤波器卷积,得到的结果是一个已平滑数据阵列],[];,[],[j i I j i G j i S *=σ,其中σ是高斯函数的散布参数,它控制着平滑程度。

已平滑数据阵列S i j [,]的梯度可以使用22⨯一阶有限差分近似来计算x 与y 偏导数的两个阵列],[j i P 与],[j i Q :2/])1,1[]1,[],1[],[(],[2/]),1[]1,1[],[]1,[(],[++-+++-≈+-+++-+≈j i S j i S j i S j i S j i Q j i S j i S j i S j i S j i P (1.12) 在这个22⨯正方形内求有限差分的均值,以便在图像中的同一点计算x 和y 的偏导数梯度。

幅值和方位角可用直角坐标到极坐标的坐标转化公式来计算:[]22],[],[,j i Q j i P j i M += (1.13))],[/],[(arctan ],[j i P j i Q j i =θ (1.14)其中,反正切函数包含了两个参量,它表示一个角度,其取值范围是整个圆周范围内。

为高效率地计算这些函数,尽量不用浮点运算.梯度的幅度和方向也可以通过查找表由偏导数计算。

三、详细设计过程1、分析图像的大部分主要信息都存在于图像的边缘中,主要表现为图像局部特征的不连续性,是图像中灰度变化比较剧烈的地方,即通常所说的信号发生奇异变化的地方。

奇异信号沿边缘走向的灰度变化剧烈,通常将边缘划分为阶跃状和屋顶状两种类型如图 3.1所示。

阶跃边缘中两边的灰度值有明显的变化;而屋顶状边缘位于灰度增加与减少的交界处。

在数学上可利用灰度的导数来刻画边缘点的变化,对阶跃边缘、屋顶状边缘分别求其一阶、二阶导数。

图3.1 阶跃边缘和屋顶状边缘处一阶和二阶导数变化规律(其中第一排为理想信号,第二排对应实际信号) 2、工作流程分析系统工作流程较为简单,功能用于对图像进行边缘检测,工作流程并不复杂。

双击ch1_1.exe 文件,系统界面就出现了,点击文件,然后选择打开,打开BMP 格式的图片文件,此时图片就会显示在工作区域;主要模块的系统过程如图3.2所示图3.24、一阶微分算法的实验结果与分析(1)Sobel 算子公式的定义为:(2)实验结果分析以cameraman 图片为例,用Sobel 算法,分别给检测结果。

理论上Sobel 算子可以轻易在空间上实现,Sobel 边缘检测器不但可以产生)1,1()1,(2)1,1(|),(++++++-=y x f y x f y x f y x G X |)1,1()1,(2)1,1(-+------y x f y x f y x f )1,1(),1(2)1,1(|),(+++++-+=y x f y x f y x f y x G y |)1,1(),1(2)1,1(+-------y x f y x f y x f较好的边缘检测效果由5.2图可以看出Sobel 算子虽然检测到的边缘信息很丰富,也较为连续,但是边缘很模糊,严重的影响了视觉效果。

相关主题