图象边缘检测论文资料.docx
- 文档编号:5908433
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:14
- 大小:1.31MB
图象边缘检测论文资料.docx
《图象边缘检测论文资料.docx》由会员分享,可在线阅读,更多相关《图象边缘检测论文资料.docx(14页珍藏版)》请在冰豆网上搜索。
图象边缘检测论文资料
摘要………………………………………………………………………………………2
ABSTRACT…………………………………………………………………………………2
第1章课题背景和内容……………………………………………………………3
1.1理论背景…………………………………………………………………3
1.2课题概述……………………………………………………………3
1.2.1课题目的………………………………………………………3
1.2.2课题意义………………………………………………………………3
第2章经典边缘检测算法分析……………………………………………………4
2.1Roberts边缘检测算子………………………………………………………4
2.2Sobel边缘检测算子和Prewitt边缘检测算子………………………4
2.3Krisch边缘检测算子………………………………………………………6
2.4高斯-拉普拉斯边缘检测算子………………………………………………6
第3章边缘检测算法实现………………………………………………………7
3.1Roberts边缘检测算子………………………………………………………7
3.2Sobel边缘检测算子和Prewitt边缘检测算子……………………………8
3.4Krisch边缘检测算子………………………………………………………8
3.5高斯-拉普拉斯边缘检测算子………………………………………………9
第4章边缘检测算法实验比较………………………………………………………9
结束语……………………………………………………………………………………11
致谢………………………………………………………………………………………11
参考文献…………………………………………………………………………………12
第1章课题背景和内容
1.1理论背景
图像处理就是对图像信息加工以满足人的视觉心理或应用需求的方法。
图像处理方法有光学方法和电子学方法。
从20世纪60年代起随着电子计算机和计算技术的不断提高和普及,数字图像处理进入了高速发展时期,而数字图像处理就是利用数字计算机或其它的硬件设备对图像信息转换而得到的电信号进行某些数学处理以提高图像的实用性。
图像处理在遥感技术,医学领域,安全领域,工业生产中有着广泛的应用,其中在医学应用中的超声、核磁共振和CT等技术,安全领域的模式识别技术,工业中的无损检测技术尤其引人注目。
物体的边缘是以图像的局部特征不连续的形式出现的,也就是指图像局部亮度变化最显著的部分,例如灰度值的突变、颜色的突变、纹理结构的突变等,同时物体的边缘也是不同区域的分界处。
图像边缘有方向和幅度两个特性,通常沿边缘的走向灰度变化平缓,垂直于边缘走向的像素灰度变化剧烈。
根据灰度变化的特点,图像边缘可分为阶跃型、房顶型和凸缘型。
1.2课题概述
边缘是图像上灰度变化最剧烈的地方,传统的边缘检测就是利用了这个特点,对图像各个像素点进行微分或求二阶微分来确定边缘像素点。
一阶微分图像的峰值处对应着图像的边缘点;二阶微分图像的过零点处对应着图像的边缘点。
根据数字图像的特点,处理图像过程中常采用差分来代替导数运算,对于图像的简单一阶导数运算,由于具有固定的方向性,只能检测特定方向的边缘,所以不具有普遍性。
为了克服一阶导数的缺点,我们定义图像的梯度为梯度算子,它是图像处理中最常用的一阶微分算法。
图像梯度的最重要性质是梯度的方向是在图像灰度最大变化率上,它恰好可以反映出图像边缘上的灰度变化。
1.2.1课题目的
本课题的目的是从理论上对几种经典的边缘检测算法(Roberts算子、Sobel算子、Prewitt算子、Krisch算子、高斯-拉普拉斯算子)进行分析,并用VC++实现这些算法。
最后,通过实例图像对不同边缘检测算法的效果进行分析,找出各种算法的适用范围。
通过本课题的研究可以为以后进一步学习数字图像处理打好基础,提高学生的独立工作能力和编程能力。
1.2.2课题意义
数字图像的边缘检测是图像分割、目标区域的识别、区域形状提取等图像分析领域十分重要的基础,是图像识别中提取图像特征的一个重要属性。
图像理解和分析的第一步往往就是边缘检测。
目前它已成为机器视觉研究领域最活跃的课题之一,在工程应用中占有十分重要的地位。
第2章经典边缘检测算法分析
2.1Roberts算子
边缘,是指周围像素灰度有阶跃变化或屋顶等变化的那些像素的集合。
图像的边缘对应着图像灰度的不连续性。
显然图像的边缘很少是从一个灰度跳到另一个灰度这样的理想状况。
真实图像的边缘通常都具有有限的宽度呈现出陡峭的斜坡状。
边缘的锐利程度由图像灰度的梯度决定。
梯度是一个向量,∇f指出灰度变化最快的方向和变化量。
(2.1.1)
梯度大小由
(2.1.2)
确定。
而梯度方向则由
(2.1.3)
确定。
因此最简单的边缘检测算子是用图像的垂直和水平差分来逼近梯度算子:
(2.1.4)
因此当我们寻找边缘的时候,最简单的方法是对每一个像素计算出(2.1.4)的向量,然后求出它的绝对值。
利用这种思想就得到了Roberts算子:
(2.1.5)
其中f(x,y)是具有整数像素坐标的输入图像。
2.2Sobel边缘算子和Prewitt边缘算子
Roberts算子是直观的也是简单的,但是对噪声多的情况显然效果不好。
实践中人们做了大量的实践,总结出了一些经验。
Prewitt和Sobel分别提出了一个算子,这就是Prewitt算子和Sobel算子。
Prewitt边缘检测算子使用两个有向算子(一个水平的,一个是垂直的,一般称为模板),每一个逼近一个偏导数:
(Prewitt模板)
如果我们用Prewitt算子检测图像M的边缘的话,我们可以先分别用水平算子和垂直算子对图像进行卷积,得到的是两个矩阵,在不考虑边界的情形下也是和原图像同样大小的M1,M2,他们分别表示图像M中相同位置处的两个偏导数。
然后把M1,M2对应位置的两个数平方后相加得到一个新的矩阵G,G表示M中各个像素的灰度的梯度值(一个逼近)。
然后就可以通过阀值处理得到边缘图像。
Sobel算子和Prewitt算子的不同就在于使用的模板不一样:
(Sobel模板)
这些模板是怎么来的呢?
我们假设图像的灰度满足下面这个关系:
(2.5)
则梯度是(
)。
显然,当前像素3×3邻域内像素值为:
(2.6)
定义垂直算子和水平算子形如:
(2.7)
利用这两个模板对当前像素进行卷积,得到的方向导数为:
(2.8)
因此当前像素处的梯度的大小为:
(2.9)
显然要有:
2(2a+b)=1(2.10)
如果我们取a=b=1/6则得到的模板就是1/6乘Prewitt算子;
如果我们取a=1/8,b=1/4则得到的就是1/8乘Sobel算子。
2.3Krisch边缘检测
Kirsch算子由8个3×3窗口模扳组成、每个模板分别代表一个特定的检测方向,其模板算子如图2.3.1所示。
在进行边缘检测时,把M0-M7所表示的边缘模板(加权矩阵)分别与图像中的一个3×3区域相乘,选取输出值为最大的模板。
然后,把这一最大输出值作为中央像素点上的边缘强度,把取得最大值的边缘模板Mk的方向k(k的取值如图2.3.2所示)作为其边缘方向。
假设图像中一点P(i,j)及其八邻域的灰度如图3.3.3所示,并设Qk(k=0,1,…,7)为图像经过kirsch算子第k个模板处理后得到的k方向上的边缘强度,则P(i,j)的边缘强度为s(i,j)=max|qk|(k=0,1,…,7),而相应的边缘方向D(i,j)={k|qk为最大值}
图2.3.1
图2.3.2图2.3.3
2.4高斯-拉普拉斯边缘检测算子
拉普拉斯(LaPIacian)算子是不依赖于边缘方向的二阶微分算子.它是一个标量而不是向量,具有旋转不变即各向同性的性质,在图像处理中经常被用来提取图像的边缘。
其表示式为:
(2.4.1)
在数字图像情况下的近似式为
=f(x+1,y)+f(x-1,y)+f(x,y+1)+f(x,y-1)-4f(x,y)(2.4.2)
由于噪声点对边缘检测有一定的影响,所以高斯拉普拉斯算子是效果比较好的边缘检测算子。
它把高斯平滑滤波器和拉普拉斯锐化滤波器结合了起来,在进行边沿检测,所以效果好。
常用的高斯拉普拉斯算子是5×5的模板:
(2.4.3)
第3章边缘检测算法的实现
在实现算法时我用到了一个图像模板操作函数:
Template(LPSTRlpDIBBits,LONGlWidth,LONGlHeight,intiTempH,intiTempW,intiTempMX,intiTempMY,FLOAT*fpArray,FLOATfCoef)
参数:
LPSTRlpDIBBits-指向源DIB图像指针
LONGlWidth-源图像宽度(像素数)
LONGlHeight-源图像高度(像素数)
intiTempH-模板的高度
intiTempW-模板的宽度
intiTempMX-模板的中心元素X坐标( intiTempMY-模板的中心元素Y坐标( FLOAT*fpArray-指向模板数组的指针 FLOATfCoef-模板系数 函数的作用是计算卷积。 3.1soble边缘检测算子 根据前面对该算法的分析得到的方法在具体实现中我使用了Robert(lpstr,lpDIBBits,LONGlWidth,LONGlHeight)函数来实现Roberts算子。 算法实现分为以下几步: 一: 取得当前指针处2*2区域的像素值: pixel[0]=(unsignedchar)*lpSrc; pixel[1]=(unsignedchar)*(lpSrc+1); pixel[2]=(unsignedchar)*(lpSrc-lWidth); pixel[3]=(unsignedchar)*(lpSrc-lWidth+1); 二: 根据算法计算目标图像中的当前点: result=sqrt((pixel[0]-pixel[3])*(pixel[0]-pixel[3])+(pixel[1]-pixel[2])*(pixel[1]-pixel[2])); 三: 重复操作得到处理后的结果。 3.2soble边缘检测算子和Prewitt边缘检测算子 根据前面对该算法的分析得到的方法在具体实现中我使用了Sobel(LPSTRlpDIBBits,LONGlWidth,LONGlHeight)函数来实现soble算子,Prewitt(LPSTRlpDIBBits,LONGlWidth,LONGlHeight)函数来实现PrewittDIB算子。 两种算法就是模板数组的值不同,所以实现时都是分为以下几步: 一: (a)设置一个一维数组来保存第一个模板的模板参数,进行第一次模板操作并把得到的图像存在缓存1中。 (b)重新设置模板参数,进行模板操作并把得到的图像存在缓存3中。 二: 求两副缓存图像的最大值: (a)指向缓存图像1倒数第j行,第i个像素的指针 lpDst1=(char*)lpNewDIBBits1+lWidth*j+i; (b)指向缓存图像2倒数第j行,第i个像素的指针 lpDst2=(char*)lpNewDIBBits2+lWidth*j+i; (c)比较得到结果 if(*lpDst2>*lpDst1) *lpDst1=*lpDst2; 三: 比较整幅图像的所有像素点。 3.3Krisch边缘检测算子 根据前面对该算法的分析得到的方法在具体实现中我使用了Kirsch(LPSTRlpDIBBits,LONGlWidth,LONGlHeight)函数。 算法实现分为以下几步: 一: (a)设置一个一维数组来保存第一个模板的模板参数,进行第一次模板操作并把得到的图像存在缓存1中。 (b)重新设置模板参数,进行模板操作并把得到的图像存在缓存3中。 二: 求两副缓存图像的最大值: (a)指向缓存图像1倒数第j行,第i个像素的指针 lpDst1=(char*)lpNewDIBBits1+lWidth*j+i; (b)指向缓存图像2倒数第j行,第i个像素的指针 lpDst2=(char*)lpNewDIBBits2+lWidth*j+i; (c)比较得到结果 if(*lpDst2>*lpDst1) *lpDst1=*lpDst2; 三: 使用冒泡算法的思想其它的各个模板重复一、二的操作进行比较得到该像素点处理后的最大值为该点的输出值。 四: 比较整幅图像的所有像素点。 3.4高斯-拉普拉斯边缘检测算子 根据前面对该算法的分析得到的方法在具体实现中我使用了Gauss(LPSTRlpDIBBits,LONGlWidth,LONGlHeight)函数。 算法实现分为以下几步: 一: 设置一个一维数组来保模板参数。 二: 进行模板操作。 三: 返回结果。 第4章经典的算法实验比较 实现后的主界面如图(图4)所示: 图4 为了更好的比较各个算子在现实中的区别和适用范围,在本文中我用了两幅原始图像,一幅是噪声比较大的图像,另一幅是噪声比较小的图像。 实验结果如下: 图4.1图4.1.1 图4.1.2图4.1.3 图4.1.4图4.1.5 图4.2图4.2.1 图4.2.2图4.2.3 图4.2.4图4.2.5 其中图4.1是噪声比较小的原始图形。 图4.1.1是用Roberts边缘检测处理的结果。 图4.1.2是用Sobel边缘检测算子处理的结果。 图4.1.3是用Prewitt边缘算子处理的结果。 图4.1.4是用Krisch边缘检测算子处理的结果。 图4.1.5是用高斯-拉普拉斯边缘检测算子处理的结果。 其中图4.2是噪声比较大的原始图形。 图4.2.1是用Roberts边缘检测处理的结果。 图4.2.2是用Sobel边缘检测算子处理的结果。 图4.2.3是用Prewitt边缘算子处理的结果。 图4.2.4是用Krisch边缘检测算子处理的结果。 图4.2.5是用高斯-拉普拉斯边缘检测算子处理的结果。 从Robert算子对图像处理的效果来看Robert边缘检测算子对具有陡峭的低噪声图像处理效果比较好。 对于非陡峭和高噪声的图像处理并不理想。 我们看到图4.1.2,图4.1.3,图4.2.2,图4.2.3它们的边缘并不是完全连通的,有一定程度的断开。 这是因为Prewitt算子和Robert算子在各个方向的处理是不同的。 对于这种情况使用八方向的Krisch算子和各向同性的高斯-拉普拉斯算子处理的比较好。 总的来比较我们发现高斯拉普拉斯算子对图像的边缘检测处理效果较好,能精确地检测具有灰度渐变和噪声较多的灰度图像。 结束语 本课题从理论上对几种经典的边缘检测算法(Roberts算子、Sobel算子、Prewitt算子、Krisch算子、高斯-拉普拉斯算子)进行分析,并用VC++实现这些算法。 最后,通过实例图像对不同边缘检测算法的效果进行分析,找出各种算法的适用范围。 通过本课题的研究拓宽了自己的知识面,为以后进一步学习数字图像处理打下了基础,提高了学生的独立工作能力和编程能力。 致谢 本论文工作是在导师杨瑞元教授的悉心指导下完成的,从论文的选题,组织以及到论文的写作全过程无不凝聚着杨老师的心血。 在此向杨老师表示真挚的感谢。 参考文献: [1].王爱民,赵忠旭,沈兰芬.基于矢量Prewitt算子的多尺度彩色图像边缘检测方法. 中国图像图形学报.第4卷(A版),第12期1999年12月 [2].吕俊白.基于快速Kirsch与边缘点概率分析的边缘提取.计算机应用.第21卷2001年2月 [3].吕俊白.基于Laplacian算子的一种新的边缘检测方法.小型微型计算机系统.第23卷,第9期2002年9月 [4].王卜堂,杨善林.基于Gauss—Laplace算子的灰度图像边缘检测 计算机工程与应用.2003年2月 [5].何斌,马天予,王运坚,朱红莲.VisualC++数字图像处理(第二版) 北京: 人民邮电出版社2002年12月 [6].齐舒创作室.C++6.0开发技巧及实例剖析.北京: 清华大学出版社 [7].夏良正.数字图像处理.东南大学出版社1999年9月
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图象 边缘 检测 论文 资料