图像特征检测 沈阳理工大学数字图像处理课程设计_第1页
图像特征检测 沈阳理工大学数字图像处理课程设计_第2页
图像特征检测 沈阳理工大学数字图像处理课程设计_第3页
图像特征检测 沈阳理工大学数字图像处理课程设计_第4页
图像特征检测 沈阳理工大学数字图像处理课程设计_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数字图像处理课程设计 摘摘 要要图像处理是一门很有价值的学科,在科学技术不断发展的今天它的技术已趋于成熟。同时图像之间的处理, 在实际应用中也显的越来越重要。本课程设计的主要任务是实现对数字图像的频谱特性的分析,观察结果,并进行结果分析。本课程设计的系统开发平台为 MATLAB,程序运行平台为Windows98/2000/XP在图像理解、图像匹配、三维重建及模式识别等领域中,特征点的检测具有十分重要的意义。特征点在保留图像中物体的重要特征信息的同时有效地减少了信息的数据量,使得对图像处理时运算量大大减少。特征点的的定义有多种不同的表述,如图像中灰度值和像素剧烈变化的点、图像边界上具有较高曲率的

2、点等。对于特征点的定义决定了特征点的特性,同时也决定了所检测出的特征点的检测所采用的方法。SUSAN(Smallest Univalue Segment Assimilating Nucleus)算法是上世纪九十年代中期提出的一种边角点检测算法,该算法是一种基于图像局部灰度特征,利用一个圆形的模板对图像进行扫描,比较模板内部的点与模板中心点的灰度值,如果灰度差值小于一定的阈值,就认为该点与中心点的灰度相同,否则就认为该点与中心点有明显的差异。统计模板内部与中心点灰度相同的点的个数,与一个全局阈值进行比较,判断该点是否属于角点,从而实现对图像特征点的检测。本文采用 matlab 语言实现了 SU

3、SAN 特征点监测并利用模拟图像和真实图像对算法进行了验证,实验表明 SUSAN 特征点检测算法能有效提取图像中的特征点。与传统的角点检测算法相比,SUSAN 算法是一种基于图像灰度比较的算法,不涉及梯度的计算。具有速度快、抗干扰能力强等特点。关键字关键字: SUSAN 算法;边缘检测;角点检测;matlab数字图像处理课程设计目目 录录1 课程设计目的.12 课程设计要求.23 特征点检测的原理及方法.33.1 SUSAN 算法基本原理 .33.2 SUSAN 算法的实现 .63.2.1 读入图像.63.2.2 SUSAN 算法显示边缘图 .64.matlab 程序代码.75.算法的应用.1

4、26.算法的评价.146.1 算法的改进.146.2 参数对角点的影响.146.2.1 去除真角点附近的伪角点.146.2.2 边缘轮廓上的伪角点处理.156.3 Harris 与 SUSAN 算法的比较 .156.3.1 Harris 基本原理.156.3.2 实验分析变化.176.4 Harris 与 SUSAN 小结 .18结论.19参考文献.20数字图像处理课程设计1 课程设计目的课程设计目的 (1)学习并了解 Matlab 软件的实用,并了解 Matlab 在数字图像中的应用。学会编写 Matlab 程序并调试、运行。 (2)了解图像的检测运算在数字图像处理中的初步应用。 (3)体会

5、图像特征检测过程和处理前后图像的变化。数字图像处理课程设计2 课程设计要求课程设计要求 (1)了解 Matlab 软件的实用,在 Matlab 环境下学会用软件对图像进行处理,并获得预期的结果。 (2)了解图像特征检测的原理和作用。 (3)对比处理后的图像与原图像,得出处理后的结论。数字图像处理课程设计3 特征点检测的原理及方法特征点检测的原理及方法3.1 SUSAN 算法基本原理算法基本原理SUSAN 算法是由 Simth SM 和 Brady JM 首先提出的一种低层次图像处理小核值相似区的方法 SUSAN(Small Univalue Segment Assimilating Nucle

6、us)即小核值相似区。该算法直接利用像素的灰度进行角点检测。而不考虑曲率等复杂的角点特征。SUSAN 检测算子的基本原理是通过统计某一像素局部区域内与该像素等灰度值近似的的点的个数,实现角点检测。该算法一般利用一个 37 像素的圆形模板来实现的,如图 2.1 所示。图 2.2中圆形模板 e 的圆心称为核心,假如模板中的某些像素的亮度与核心相同或相似,就定义这些像素组成的区域为 USAN(核值相似区)区域。图 2.3 显示出了不同位置的 USAN 区域面积大小。USAN 区域包含了图像结构的以下信息:在 a 位置,核心点在角点上,USAN 面积达到最小:在 b 位置,核心点在边缘线上时,USAN

7、 区域面积接近最大值的一半;在 c、d 位置,核心点处于黑色矩形区域之内,USAN 区域面积接近最大值。因此,可以根据 USAN 区的面积大小检测出角点。图 3.1 包含 37 个像素的圆形模板数字图像处理课程设计 abcd模版的边界模版的核心e 图 3.2 简单图像中的四个圆形模板abcde像素灰度和核心不同的区域像素灰度和核心值相似的区域 像素灰度和核心值相似的区域图 3.3 不同位置 USAN 区域面积的大小具体检测时,是用圆形模板扫描整个图像,比较模板内每一像素与中心像素的灰度值。并给定阈值来判别该像素是否属于 USAN 区域,式 2.1 是SUSAN 算法的原始相似比较函数。式 2.

8、2 是在实际应用中比较常用的相似比较函数 : trIrIiftrIrIifrrc)()(0)()(1),(000(3.1) 数字图像处理课程设计 6)()(00),(etrIrIrrc(3.2) 用于计算以每个像素点为核心的 USAN 区的像素个数;是模板中心)(0rI像素(核)的灰度值;为模板内其他任意像素的灰度值;t 是区分特征目标与)(rI的一个重要阈值,一般取 25。图像中某一点 USAN 区域大小可由下式 2.3 表示: )(000),()(rcrrrcrn(3.3)式中,是以为圆心的模板。)(0rc0r在得到每个像素的 USAN 区域后。再由下式 2.4 角点响应函数(Corner

9、- Response Function,CRF )产生角点初始响应: 其他0)()()(000grnrngrR(3.4) 式中,g 是抑制噪声的几何阈值 ,它决定了输出角点的 USAN 区域的最大值。同时它还决定了所检测到的角点的尖锐程度。g 取得越小,所检测到的角点越尖锐。用这种原理,取不同的几何门限,不但能检测角点还可以检测交点、边缘等特征。SUSAN 算子计算简单,不需要用导数求边缘强度及方向梯度,增强了抗噪能力;且计算时间明显减少,易于硬件实现。然而 SUSAN 算法并不能完全消除孤立噪声点及由于模糊导致而致立体匹配误差率较高。SUSAN 算法流程图如图 4.4 所示。数字图像处理课程

10、设计 计算相似度 ),(yxc 计算掩膜区域的USAN 值),(00yxn 计算模板中心点的初始响应值 根据阈值确定角点 选取匹配的模版 显示角点 图 3.4 SUSAN 算法流程图3.2 SUSAN 算法的实现算法的实现 3.2.1 读入图像读入图像关闭所有窗口(程序运行产生的,不包括命令窗,editor 窗和帮助窗) ,清除所有工作空间中的变量,读入图像并显示原始图像。3.2.2 SUSAN 算法显示边缘图算法显示边缘图构造半径为 3 个像素的圆型模板,遍历图像的每一个点。当像素位于77模板内时,根据公式(10)求 c 和 n(n 的最大值为 37) , 600)(),(exp),(tyx

11、IyxIyxC(3.5) 其中,为掩模核在图像中的坐标,(x,y)为掩模区域其它点的坐标。 、I(x,y)分别为点和的灰度值。阈值决定了两个点相似的最大差异。C 为输出的结果。其中:为 USAN 中象素个数,它给出了 USAN 值。将与某固定阈值相比较,n得到 SUSAN 算法对图像角点的响应函数(2.5):其中,(为2/maxng maxn数字图像处理课程设计的最大值) ,恰好是理想边缘的 USAN 区大小,而对于实际有噪声影响的图n像,边缘的 USAN 区一般都大于。并以 n 为基础创建一个新的窗口gfigure(2)并显示结果为图像的边缘。4.matlab 程序代码程序代码clc,cle

12、ar;harris_result=;%-保存图像所有信息、读取图像-FileInfo=imfinfo( F:0.jpg);Image=imread( F:0.jpg);%-转换为灰度值图像-if(strcmp(truecolor,FileInfo.ColorType)=1) Image=im2uint8(rgb2gray(Image);end%-计算图像的方向导数-%-横向Prewitt差分模板dx=-1 0 1;数字图像处理课程设计 -1 0 1; -1 0 1;Ix2=filter2(dx,Image).2;Iy2=filter2(dx,Image).2;Ixy=filter2(dx,Im

13、age).*filter2(dx,Image);%-计算局部自相关矩阵-%-生成9*9的高斯窗口(窗口越大,探测到的角点越少)h=fspecial(gaussian,9,2); A=filter2(h,Ix2);B=filter2(h,Iy2);C=filter2(h,Ixy); %-矩阵Corner用来保存候选角点位置-nrow=size(Image,1);ncol=size(Image,2);Corner=zeros(nrow,ncol);%-相似性筛选-时间优化-%-参数t:点(i,j)八邻域的“相似度参数”,中心点与邻域其他八个点的像素值之差在%-(-t,+t)之间,则确认他们为相似点

14、t=20;boundary=8; %-去除边界上boundary个像素for i=boundary:1:nrow-boundary+1 for j=boundary:1:ncol-boundary+1 nlike=0; %-相似点的个数 if Image(i-1,j-1)-Image(i,j)-t&Image(i-1,j-1)-Image(i,j)-t&Image(i-1,j)-Image(i,j)-t&Image(i-1,j+1)-Image(i,j)-t&Image(i,j-1)-Image(i,j)-t&Image(i,j+1)-Image(i,j

15、)-t&Image(i+1,j-1)-Image(i,j)-t&Image(i+1,j)-Image(i,j)-t&Image(i+1,j+1)-Image(i,j)=2&nlikeCRFmax CRFmax=CRF(i,j); end end endend%-判定当前位置是否为角点-count=0;%-角点个数t=0.01;for i=boundary:1:nrow-boundary+1 for j=boundary:1:ncol-boundary+1 if Corner(i,j)=1 if CRF(i,j)t*CRFmax&CRF(i,j)CRF(i

16、-1,j-1). &CRF(i,j)CRF(i-1,j)&CRF(i,j)CRF(i-1,j+1). &CRF(i,j)CRF(i,j-1)&CRF(i,j)CRF(i,j+1). &CRF(i,j)CRF(i+1,j-1)&CRF(i,j)CRF(i+1,j). &CRF(i,j)CRF(i+1,j+1) count=count+1; else数字图像处理课程设计 Corner(i,j)=0; end end endendfigure,imshow(Image);hold on;for i=boundary:1:nrow-boundar

17、y+1 for j=boundary:1:ncol-boundary+1 column_ave=0; row_ave=0; k=0; if Corner(i,j)=1 for x=i-3:1:i+3 for y=j-3:1:j+3 if Corner(x,y)=1 row_ave=row_ave+x; column_ave=column_ave+y; k=k+1; end end end end if k0 harris_result=harris_result;round(row_ave/k) round(column_ave/k); plot(column_ave/k,row_ave/k,

18、b.);数字图像处理课程设计 end endend5.算法的应用算法的应用为了更好地验证本文中所提出算法的有效性,利用复杂模拟图像和真实图像对算法进行了检测。输入真实的楼房图像如图 6.1 所示:数字图像处理课程设计图 5.1 原始图 提取了角点后的图如 5.2 所示:数字图像处理课程设计图 5.2 提取了角点后的图像 因为各个图形的角点离其他图形很近,且在一张图内,各个角点相距较远,所以使用较大的抑制窗口,如果两个真角点在同一个抑制窗口内就会有一个不剔除。实验结果表明本算法可以有效提取图像中好的角点,并使角点均匀的分布在图像上。数字图像处理课程设计6.算法的评价算法的评价6.1 算法的改进算

19、法的改进本文通过在灰度图像上寻找 SUSAN 算子的极值提取特征点,使用 matlab语言编程实现了 SUSAN 特征点检测算法,首先构造一个圆形模板遍历整个图像利用相似比较函数得出的结果与阈值 t 进行比,然后计算出 USAN 区域的大小 n 与阈值 g 比较得到角点的相应函数,与原来的 SUSAN 算法相比,为了得到正确的角点对检测出的角点群利用非极大值抑制函数(NMS)方法筛选出具有局部最大角点响应值的候选点,并把它们确认为最终的角点检测结果。NMS法的范围选定在以被检测点为中心的方形邻域内,最大值抑制使伪角点大55大减少。6.2 参数对角点的影响参数对角点的影响在运用 SUSAN 研究

20、发现,在使用基本 SUSA 算法提取角点时经常会提取到两种不相关的点,一种是真角点附近的点,另外一种是边缘轮廓上的点,这些点成为伪角点被一起提取出来。针对两种伪角点的产生原因分别提出两种简洁的方法进行处理,达到较好的效果。6.2.1 去除真角点附近的伪角点去除真角点附近的伪角点算法对图像进行处理时,很难对一些曲率较高的角点进行单像素精度的提取这是因为当进行 USAN 区域面积与门限值 g 的对比时,一些曲率较大的角点,其周围一些边缘点或内部点同样满足 USAN 面积小于 g 的条件因此,在角点提取时这些点同时被提取出来并成为伪角点。原则上可以令 g 取较小的值而避免这些伪角点的出现,但这样同时

21、造成对曲率较大的角点提取失败的结果。在 SUSAN 算法中,可以根据不同的情况,即根据图像边缘的形状,以及目标和背景的灰度对比度,选择合适的门限 t 和 g。数字图像处理课程设计6.2.2 边缘轮廓上的伪角点处理边缘轮廓上的伪角点处理有时候在提取角点时发现一些边缘上经常会产生大量的伪角点。这主要是因为圆形模板面积过小而导致阈值 g 的选取过于粗糙,而若对所有像素都采用大模板进行覆盖处理,则必将大大降低处理速度。因此,在进行一轮小的模板提取角点后,针对边缘上的伪角点进行第二轮的角点提取。主要算法思路是选取更大的模板(例如 1111 的模板)对第一轮检测到的所有角点进行覆盖,同时选择合适的阈值 g

22、 剔除不满足阈值要求的伪角点。6.3 Harris 与与 SUSAN 算法的比较算法的比较和 SUSAN 算法一样,Harris 算法也是基于灰度图像特征点检测的算法suansan 算法原理在第二章已论述过不再赘述,下面介绍 Harris 基本原理。6.3.1 Harris 基本原理基本原理Harris 角点检测算法是由 Chris Harris 和 MikeStephens 在 1988 年提出该算法是在 Moravec 算法的基础上发展起来的 Moravec 算法是研究图像中一个局部窗口在不同方向进行少量的偏移后考察窗口内图像亮度值的平均变化需要考虑下面三种情况:(1) 如果窗口内区域图像

23、的亮度值恒定那么所有不同方向的偏移几乎不 发生变化。(2) 如果窗口跨越一条边那么沿着这条边的偏移。几乎不发生变化 但是与边垂直的偏移会发生很大的。(3) 如果窗口包含一个孤立的点或者角点那么所有不同方向的偏移会发生很大的变化。下面介绍 Moravec 算法以及 Harris 算法在其基础上做出的一些改进 (1)计算像素点的自相关值的时候只考虑了像素点的 8 个方向 Harris 等通过区域变化扩展将一些灰度强度变化比较小的体现出来 如式(11)所示: vuvuvuvuuxvuyxyxoyYxXwIIwE,222,2,)()(数字图像处理课程设计(6.1) 这里一阶导数可以近似为: yTxII

24、YIIX/) 1 , 0 , 1(,/) 1 , 0 , 1((6.2)因此灰度强度变化比较小的情况可以写成:yxE, 22,2TySxyRxEyx(6.3)其中 wXYTwYSwXR)(,22(6.4) (2)Moravec 算法没有对图片进行降噪处理所以对噪声比较敏感 Harris算法使用平移的圆形窗口对图像进行预处理来降噪这里使用了高斯窗口: )2/ )(exp(222,vuwvu(6.5) (3)Moravec 算法对边缘响应比较敏感解决方法灰度变化比较小时yxE,可以精确写为,式中 M 为:TyxyxMyxE),(),(, BCCAyIyIxIyIxIxI22)()()()((6.6

25、)为了避免求 M 的特征值使用 TrM 和 Det(M): 2)(,)(CABMDetBAMTr(6.7)定义角点响应函数(CRF)为: 2)()(traceMkMDetR(6.8)上式中角点响应函数 R 在角点的区域是正值在边界的区域是负值不变化的区域是很小的值在图像角点检测的过程中如果 R 值大于某个给定的阈值则这个点为角点。数字图像处理课程设计总体来说 Harris 算法是一种非常有效的角点检测算法优点主要表现在以下两个方面:(1) 提取的角点比较稳定只要不是在大尺度状态下提取的角点 Harris 算法提取出来的角点是比较稳定的。(2) Harris 算法提取的角点比较均匀合理根据实验可

26、以得出在纹理信息比较丰富的区域 Harris 算法可以提取出比较多的有用的角点而在纹理信息比较少的区域提取的角点则比较少。6.3.2 实验分析变化实验分析变化通过某计算机立体视觉系统分别获取模型汽车的单幅影像与立体影像对,在 matlab7.8 平台上编程实现对 SUSAN、Harris 算子的点特征提取,并采用基于匹配支持度的松弛匹配算法对立体影像对进行匹配比较。对于单幅影像,由于 Harris 算子点特征提取操作是通过确定图像中所能提取的最大可能的特征点数目来选择值最大的若干象素点作为特征点,因maxNI此,当采用 Harris 算子提取同一目标物影像中的特征点时,可设置不同数目的来观察提

27、取特征点的分布和数量。 maxN随着的不同,提取出特征点的数量和分布在相应不断调整。在maxNSUSAN 算子特征提取中,包括掩模核与掩模区域中其它点灰度值最大差异的阈值 ,SUSAN 算法对影像特征点响应的阈值 ,排除影像孤立噪声点干扰的tg阈值 等多组阈值参数。相比之下,采用 Harris 算子提取影像中的特征点,其d阈值参数的选择就要简单的多,只需选择确定影像中所能提取的最大可能的特征点数目,并可以此作为调整特征点分布的参考。 maxN当对大小为 24001600 象元的航空影像分别采用上述两种算子进行点特征提取时,整幅影像中 SUSAN 算子有些房屋角点未能提取出,而 Harris 算

28、子提出了几乎所有角点特征。但 SUSAN 算子提取所用时间较 Harris 算子少近 10倍。数字图像处理课程设计6.4 Harris 与与 SUSAN 小结小结Harris 算子是计算机视觉界使用较为广泛的一种点特征提取算子,SUSAN算子是国际上新近推出并已得到广泛应用的保持结构算子。与传统点特征算子比较,前者具有简单、稳定、易于实现的特点。由上述点特征提取与随后的立体影像匹配结果分析可得出:利用 Harris 算子不需设置阈值,整个过程的自动化程度高,可以根据匹配结果,定量调整提取的特征点数。同时它抗干扰强、精度高。SUSAN 算子提取特征点分布合理,较适合提取图像边缘上的拐点,由于它不

29、需对图像求导数,所以也有较强的抗噪声能力,利用 SUSAN 算法提取图像拐点,阈值的选取是关键。它没有自适应算法,也不象 Harris 算法可根据需要提出一定数目的特征点。但该算法编程容易,易于硬件实现。为克服影像灰度值分布不均对提取 SUSAN 算子角点的影响,可对影像采取二值化(或多值化)分割,以进一步改进提取效果。数字图像处理课程设计 结论结论 本文用 matlab 语言实现了 SUSAN 角点算法,并着重分析了基本的SUSA 算法在提取角点时出现多余的伪角点,并 讨论了真角点附近及边缘轮廓上的伪角点的处理方法。经实验证明,采用改进的算法后,角点提取精度有较明显的提高。对各种类型的角点都能能获得较好的结果。但是 SUSAN 角点检测存在不足有:采用固定阈值不适合一般的情况,需要只有阈值 g 自适应,阈值 t 只能手动修改 图像中的噪声对所提取的特征有较大影响,实验表明此算法可靠性稍差。角点检测算法的设计与实现涉及多方面的理论、方法和技术,本算法还有许多新的问题需要解决,需要在实际应用中不断的积累和完善,在以下几个方面还需要做进

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论