基于MATLAB的骨架提取算法的研究实现.docx
《基于MATLAB的骨架提取算法的研究实现.docx》由会员分享,可在线阅读,更多相关《基于MATLAB的骨架提取算法的研究实现.docx(32页珍藏版)》请在冰豆网上搜索。
![基于MATLAB的骨架提取算法的研究实现.docx](https://file1.bdocx.com/fileroot1/2022-12/15/08918cc8-e1b7-4754-adc1-0fafb7033624/08918cc8-e1b7-4754-adc1-0fafb70336241.gif)
基于MATLAB的骨架提取算法的研究实现
毕业设计(论文)
题目:
基于MATLAB的骨架提取算法的研究实现
系别信息工程系
专业名称通信工程
班级学号098204232
学生姓名俞浩然
指导教师欧巧凤
二O一三年五月
毕业设计(论文)任务书
I、毕业设计(论文)题目:
基于MATLAB的骨架提取算法的研究实现
II、毕业设计(论文)使用的原始资料(数据)及设计技术要求:
学习数字图像处理技术,深入研究中轴变换的各种算法原理,采用MATLAB编程,
完成中轴变换,要求算法效率较高,且能较好的抑制噪声。
具体要求如下:
1﹑充分了解数字图像处理原理
2、熟悉MATLAB开发环境,图像转换、骨架提取等相关算法
3、采用Matlab实现图像二值化和中轴变换
3、比较各种算法的处理效果;并进行算法性能分析
III、毕业设计(论文)工作内容及完成时间:
第1周-第3周:
查找资料,翻译英文文献,撰写开题报告。
第4周-第8周:
程序流程框图编制、源程序设计,系统软件设计及调试。
第9周-第13周:
实验数据分析。
第14周-第16周:
撰写毕业论文,准备答辩。
Ⅳ、主要参考资料:
[1].[美]恩格尔WK.DigitalSignalProcessingUsingMATLAB[M].西安:
西安交
通大学出版社,2002
[2].[美]NakamuraS.NumericalAnalysisandGraphicVisualizationwith
MATLAB(SecondEdition)[M].北京:
电子工业出版社,2002
[3].[美]冈萨雷斯.数字图像处理(MATLAB版)[M].北京:
电子工业出版社,2005
[4].[美]冈萨雷斯.数字图像处理(第二版)[M].北京:
电子工业出版社,2007
2007
[5].张化光,刘鑫蕊,孙秋野.MATLAB/SIMULINK实用教程[M].北京:
人民邮电出版社,
2011
[6].秦筱威一种有效的骨架毛刺去除算法[J].华中科技大学学报,2004,(12):
28-31
[7].杨承磊,孟祥旭等.带状图像交叉区域的骨架求解算法[J].计算机辅助设计
与图形学学报,2000,(9):
677-681.
信息工程系通信工程专业类0982042班
学生(签名):
填写日期:
自2013年2月21日至2013年5月28日
指导教师(签名):
助理指导教师(并指出所负责的部分):
通信工程系主任(签名):
学士学位论文原创性声明
本人声明,所呈交的论文是本人在导师的指导下独立完成的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含法律意义上已属于他人的任何形式的研究成果,也不包含本人已用于其他学位申请的论文或成果。
对本文的研究作出重要贡献的个人和集体,均已在文中以明确方式表明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:
日期:
学位论文版权使用授权书
本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权南昌航空大学科技学院可以将本论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
作者签名:
日期:
导师签名:
日期:
基于MATLAB的骨架提取算法的研究实现
学生姓名:
俞浩然班级:
0982042
指导老师:
欧巧凤
摘要:
骨架作为二维、三维数据在计算机辅助设计、数字博物馆、医学图像处理、科学数据可视化、计算机图形学、虚拟现实和游戏等领域的迅猛发展,使之成为继图像、音频、视频以来又一种重要的多媒体数据形式。
其中最常用的一种简化表示方式就是使用一维曲线,一般称为骨架。
利用物体的骨架来描述对象是一种既能强调物体的结构特征,也能提高内存使用率与数据压缩率的好方法。
在本文首先详尽讨论了骨架的各种定义及骨架提取算法的研究现状,通过对不同类别的骨架算法的分析比较,得出不同类别的骨架算法的优缺点。
接下来研究了生成三维体素模型的问题,分析比较现有体素化方法的优缺点,重点采用最小包围盒改进了基于欧式距离测度网格模型的体素化算法,在Matlab平台上实现其加速算法并集成到三维模型骨架提取可视化实验平台,实验证实了该算法的高效性,满足课题的需要。
最后系统地分析了我们需要开发的模型骨架算法,重点探讨并实现了几种代表性的骨架提取算法,给出实验结果比较各自的特点,分析并提出改进建议。
关键词:
中轴,线性骨架,骨架算法
指导老师签名:
StudyonskeletonextractionalgorithmrealizationbasedonMATLAB
Studentname:
YuHaoranClass:
0982042
Supervisor:
OuQiaofeng
Abstract:
PrevailingintheworldofComputer-AidedDesign,digitalmuseum,medicalimaging,scientificvisualization,virtualreality,computergraphicsandgamingenvironment,Three-dimensional(3D)databecomemoreandmoreacommonfeatureofnowadaysmultimedia.Theline-likerepresentationisaone-dimensional(ID)abstractionofathree-dimensional(3D)object,consistingofasetofcurvesembeddedin3Dspace.Thisline-likerepresentationofa3Dobjectisalsoknownasthecenterlineorthecurve-skeleton.Asareducedrepresentation,thecurve-skeletoncapturetheessentialshape(topologyandgeometry)oftheunderlying3Dobjectinaneasytounderstandandverycompactform,alsoincreasetheefficiencyofmemoryusefulnessandcompressratio.Inthispaperfirstlydiscussedtheresearchstatusofallkindsofdefinitionsandskeletonextractionalgorithmframework,throughanalysisandcomparisonofdifferentcategoriesofskeletonalgorithm,advantagesanddisadvantagesofthedifferentcategoriesofskeletonalgorithm.Thenextgenerationof3Dvoxelmodel,comparestheadvantageanddisadvantageofexistingvoxelizationmethod,focusingontheuseoftheminimumboundingboxofEuclideandistancemeasuregridmodelvoxelizationalgorithmbasedonimproved,theaccelerationalgorithmandintegratedintothe3DmodelvisualizationplatformskeletonextractionontheMatlabplatform,theexperimentprovedefficiencyofthealgorithm,tomeettheneedoftask.Finally,systematicanalysisofthemodelskeletonalgorithmweneedtodevelop,mainlydiscussesandimplementsseveralrepresentativeskeletonextractionalgorithm,therespectivecharacteristicsofcomparativeexperimentalresultsaregiven,analysisandimprovementsuggestions.
Keywords:
medialaxiscurve-skeletonSkeletonalgorithm
SignatureofSupervisor:
目录
1绪论1
1.1研究背景与意义1
1.2国内外研究现状2
1.2.1基于拓扑与几何分析的方法2
1.2.2拓扑细化的方法4
1.2.3基于距离变换的方法5
1.2.4广义势场方法6
1.2.5各种骨架化算法的比较6
1.3论文主要工作与内容安排8
2物体骨架提取方法研究9
2.1骨架提取的基本概念9
2.1.1物体骨架与物体边界/轮廓的关系9
2.1.2提取物体骨架的基本要求10
2.2经典的物体骨架提取算法10
2.2.1细化骨架提取算法10
2.2.2距离变换骨架提取算法11
2.2.3Voronoi图骨架化算法12
2.2.4偏微分方程骨架化算法12
2.2.5形态学骨架提取算法13
2.3当前骨架提取算法面临的重点和难点13
2.4构建物体视觉主骨架14
2.4.1视觉主部分概念15
2.4.2提取视觉主骨架15
2.5结论17
3骨架树描述及有关识别算法研究18
3.1骨架树的基本概念18
3.2骨架树模型的建立18
3.3骨架树形状描述及有关识别算法19
3.3.1形状特征描述19
3.3.2基于拓扑和形状相似度结合的识别算法20
3.4结论20
4基于MATLAB的实现步骤及分析21
4.1MATLAB图像分析方法简介21
4.2算法实现步骤流程图21
4.3算法实现骨架提取23
4.3.1形态学骨架化算法实现骨架提取23
4.3.2二值图像细化算法实现骨架提取24
4.4图像对比分析25
5结论与展望26
参考文献27
致谢29
附录30
1绪论
1.1研究背景与意义
随着扫描技术和计算机图形学的发展以及计算机性能的提高,模型己成为继声音、图像和视频之后的第四种多媒体数据类型。
对模型的使用与研究在娱乐、医学、机械工程、计算机仿真和虚拟现实,工业应用等领域得到了认间,日益发达的互联网技术为人们对三维模型的共享和处理提供了条件,这些都导致对维模型应用需求的增长。
但是三维模型的信息量很大,同时三维模型的描述方法多样,如点集合表示法、多边形网格表示法和体素表示法等,这也使得三维模型在许多应用中发生占用存储空间过大、运行计算负载过重、达不到时计算的情形。
所以需要一种"紧凑的"表示方式来尽可能完整,全面地表示描述三维模型的结构特征信息等。
其中最常用一种简化的表示方式就是使用一维曲线,一般称为中心线或者线性骨架。
利用物体的骨架来捕述对象是一种既能强调物体的结构特征,也能提高内存使用率与数据压缩率的好方法。
骨架作为计算机图形学、计算几何学、点集拓扑学和图论等跨学科专业的研究内容,有丰富的理论支撑和很多成熟的数学工具可以利用。
自从Blum[1]的开创性研究以来,数十年来研究者们从不同的角度研究了骨架的各个侧面,并且将它应用到越来越广泛的领域之中。
这些领悟几乎涉及到计算机视觉和图像理解领域的方方面面。
骨架是原始图形的一种压缩表示,与原始图形保持了相同的拓扑结构,并且存在于图形的对称轴上,能够同时反映图形的拓扑与形状信息,减少原始图形的冗余信息,是在二维或三维空间里描述物体基本拓扑的有力抽象化手段。
三维模型的骨架是该物体的直观图或中心线的表示。
应用中它可以代替原三维模型参与许多运算,从而大大减少计算开销,可广泛用于医学可视化、模式识别、计算机动画等领域。
近年来,随着体可视化技术的发展以及体图形学的出现,使得三维骨架提取成为了一个研究热点。
在过去的二十年里,科研工作者在三维骨架提取领域已经开发了很多的算法,并且新的算法也正在不断出现。
2006年美国Rutgers大学的Cornea等人详尽综述了三维线性骨架提取的应用与研究,并在网站上公开了部分算法的源代码供大家使用。
可以说这极大方便了研究者,但Cornea提供的源代码读取数据格式不统一,同时缺乏可视化显示,非常不便于重复使用。
为避免重复使用,非常有必要充分利用各种已有算法,开发二维、三维骨架提取平台。
1.2国内外研究现状
骨架是表示物体的一种很自然的形式,三维模型的骨架可以看成是由物体中所有的最大内接球中心所在位置点构成。
三维模型的骨架在计算机视觉、医学图像可视化、特征提取与表示、模型匹配跟踪等诸多领域有着广泛的应用。
骨架算法的研究工作已经开展了三十多年,其中二维图形的骨架算法研究比三维情况下要成熟许多。
最初三维物体骨架提取算法使用人工指定的方法。
人工指定算法要求用户一张张地在切片上直接指定中心点,然后再将点连成线。
这种方法耗时费力,己很少采用。
当前的研究主要可以分为以下四类。
第一类是基于拓扑与几何分析的方法,通过构造模型的Voronoi图或Reeb图来得到骨架;第二类是拓扑细化法(TopologyThinning),又称为模拟烧草模型算法,此类算法从边界开始,反复迭代地逐层剥离离散后的模型,直至剩下一维的骨架;第三类方法是基于距离场的方法,它们先生成关于模型的距离场,再提取距离场中的局部极值点,然后连接这些点,并作一些细化调整得到骨架;第四类是广义势场方法,假设模型的边界上聚集了均匀分部的同种电荷电源,采用牛顿静电力学模型建立立场,让种子点逐步移动到达力学平衡点,然后依据种子点的相邻关系连接这些平衡点得到骨架。
下面分别详细介绍各类算法的研究情况。
1.2.1基于拓扑与几何分析的方法
基于拓扑与几何分析的方法又主要包括两方面:
Voronoi图和Reed图。
Voronoi图是计算几何领域里的一项重要工具。
Voronoi图的概念是俄国数学家GVoronoi在1908年提出的,是计算几何学上非常著名的工具,被广泛的应用于各个行业。
在二维平面M上给定一个包含n个点的集合
,与S关联的Voronoi图为覆盖整个平面M的一个凸多边形的集合
,其中:
(1-1),
包含了M中所有到点
的距离小子点集S内任何其他点距离的空间区域。
式(1-1)给出点
的Voronoi多边形,点集S的Voronoi多边形集合就构成了S的Voronoi图。
图1-1给出了平面内的一组点及由这组点集生成的Voronoi图。
这个概念也可以扩展到三维空间上,这样的Voronoi图就是Voronoi多面体的集合。
图1-1平面内的点集和其Voronoi图
骨架及Voronoi图都基于最短距离约束,Voronoi图的生成是一个由点到区域的扩张过程,骨架的提取是一个区域到线的细化过程,可以以火的蔓延为例进行分析。
假如在某一区域M中存在一点集,在t=O时点燃点集中的点,着火点以同样的速度向四周扩散,燃烧前沿相交时熄灭,燃烧区域对M的分割就是Voronoi分割。
边界点具有特殊性,其燃烧前沿不能够完全相交,因此Voronoi图边界的多边形是无限向外扩展的。
同理假如对某一区域边界线上的所有点,在t=0时点燃,火的前沿以相同的速度向内部扩散,燃烧前沿相遇时熄灭,熄灭火焰点的集合便是区域的骨架。
骨架实际上是物体内部相对于物体边界的最大内切圆的中心的集合,而内切圆的圆心至少与物体边界上的两个点具有相等的距离。
同时,与物体边界点所关联的Voronoi图所生成的靠近物体中心的Voronoi边与至少两个边界点具有相同的距离。
因此,图形边界点集的Voronoi图能够给出部分的骨架。
不完备之处在于Voronoi图计算的是空间内到给定点集距离最小的区域,因而不区分图形内外部分,在遇到有凹点的图形时与精确骨架有差别,可以说物体的骨架点集是Voronoi图的子集。
Voronoi图方法只适合计算简单多面体的骨架,不适用于离散模型,同时处理内部有空洞的物体也有困难。
对于复杂的物体实体,理论上可以先用表面网格模型表达,然后计算Voronoi图,但是若原始物体表面太光滑,则表面多边形太小,Voronoi图的计算量将十分庞大,因此Voronoi图方法的适用范围目前还比较狭窄。
此类方法也便于生成多尺度骨架描述,但是需要剪枝的过程,而且规则很复杂。
对于边界噪声的影响,此类方法也表现得特别敏感,这一点对于识别系统是非常不利的。
另外一些方法基于Reeb图思想。
该类算法首先在模型上定义一个连续函数,计算每个模型顶点的函数值,将具有同样函数值的顶点聚合成一个顶点,得到模型的骨架。
一般采用Reeb图进行骨架抽取的思路,都将计算对象放在模型的顶点上,而后根据顶点的函数值计算其所在面片落入的各个函数值区间,进行骨架创建。
而黄坤武提出一种针对模型面片进行直接骨架抽取的算法框架,首先定义模型面片之间的距离计算方法,创建模型的对偶图,然后在该对偶图上应用Reeb图的计算思想,在对偶顶点上定义一个连续函数并计算每个顶点的函数值,最终根据计算得到的函数值以及顶点对应的面片之间的邻接关系创建模型的骨架。
1.2.2拓扑细化的方法
拓扑细化方法是一种受到广泛关注的算,这类方法模拟烧草模型的物理过程,由图像的边界开始向内演化,逐步搜索到中轴骨架的位置。
基本思想是逐层均匀的剥掉图形的边界点,剩下最里层的不能在剥掉(否则会影响连通性)的部分就得到了图形的骨架。
这类算法的研究首先开始于二维图像,后来又逐渐扩展到三维领域。
这一类算法的关键就是简单点(Simplepoint)和端节点(Endpoint)的判断。
所谓简单点,就是那些被删除后不会改变图像拓扑结构的点。
端节点也是一类简单点,但是对它的删除可能会丢失一些物体末端信息,会造成过皮细化。
为了保留物体形状有用的信息,那些作为端节点的简单点就必须保留不变。
这一类方法的过程实际上就是简单点的判断与删除的过程。
这个过程一直重复,直到没有点能够被删除,这样就产生了骨架,但是端节点在三维情况下的定义却不容易确定。
根据对简单点的判断的不同方法,又可以分为基于模板的算法和基于边界的算法。
拓扑细化方法的优点就是能够保证所抽取的骨架的连通性,同时,容易平行实现,对于光滑的、规则的物体,是一种不错的细化选择。
但是,它也存在着很多的缺点,比如会产生一些小突起,以及无关的枝桠。
而且对于三维物体而言,细化的过程比较复杂,从而需要给出大量的删除条件或者特殊的规则,以避免在细化过程中造成不连通的现象。
而且,细化法只是考虑局部连通关系,无法对图形特征进行全局的把握,使它对噪声特别敏感,含有大量噪声的边界常常会导致许多点被误认为端节点。
1.2.3基于距离变换的方法
基于距离变换的方法是利用物体的连通性,对局部领域进行距离变换赋值,从而抽取出物体的骨架点。
物体内的每一点的DT(DistanceTransform)值被定义为这个点到边界点的最小距离。
由于骨架点相对于物体的边界而言应当处于中心的位置,而从理论上讲,最接近于物体中心的点应该具有最大的DT值。
因此,DT值就能为骨架点的确定提供有用的信息。
距离度量(DistanceMetric)是衡量图像中两点间距离的方法,目前,有很多种距离规则可以用于计算距离变换值。
例如两点间的欧式距离就可以提供足够的信息来判断该点是否位于中心。
但是在实际计算中,两点间的欧式距离为:
其中,
和
分别为两点的笛卡尔坐标,其计算代价是非常高的,如此精确的距离计算也是不必要的,在一些文献中,使用Manbattan距离或者Cbess-board距离来加快计算。
根据体图形学的理论,在三维空间中,物体是以离散网格的形式采样的。
因此可以用加权距离规则来近似欧式距离。
这种规则被定义为a-b-c形式例,其中a为面相邻元之间的局部距离,b为边相邻元之间的局部距离,c为点相邻之间的局部距离。
依据距离的参照据,提取骨架的距离场可分为两类:
到源点的距离场,记为DFS(DistanceFieldfromSource),一般在模型表面上选取一个源点,然后计算模型表面上或内部的所有点到该源点的距离,得到的距离场即为DFS;到模型边界的距离场,记为DFB(DistanceFieldfromBoundary),对于模型内部的某一点,计算该点到模型边界的最短距离,得到的距离场即为DFB。
基于这两种距离场的骨架提取方法分别称为DFS方法和DFB方法。
距离场方法,一般需要先将模型离散为规则数据场的体素表达,再进行骨架提取的工作。
在这些方法中,它们大多使用Dijkstra算法来构造距离场或者进行骨架节点的搜索。
Dijkstra算法事先构造某特定权值来度量图中路径的长度,然后从图的某指定源点出发,依据路径长度的递增次序,来产生到所有其它顶点的全局最短路径。
于是,若把模型表面多边形的所有边和顶点看作一个连通图,多边形的边的欧式长度作为路径权值,那么运用Dijkstra算法就可以在模型表面上建立DFS,若把DFB值看作是高度值,则模型的DFB就是一个高度位图,那么骨架分支就是该位图的“山脊线”。
若构造某路径权值,使之随DFB值(高度值)单调递减,那么运用Dijkstra算法得到的某两点间的最短路径,就是这两点间的“山脊线”,这样就得到了一条骨架分支。
提取所有这样的分支,就可得到模型的完整骨架。
Gagvani提出一种基于距离变换的带参数控制的三维骨架提取方法。
该方法比较每个点与其邻域点的距离变换值,满足一定局部最大条件的点被选为骨架点,再利用一个细化参数控制骨架点的密度,并且可以由这些骨架点半自动地抽取出三维物体的中心线。
这种方法的优点是,能够由骨架点及其DT值重建出物体,而且它实现起来相对简单,能够抽取出不规则物体的骨架,使用面较广。
另外基于距离变换的方法在骨架点的准确度上有明显的优势,且由此类方法求出的骨架具有完全重建原始图形的能力,并具备平移、旋转、比例变化的不变性。
但是,用这种方法抽取出的点集并不能保证得到一个连通的骨架。
同时这类方法很难保证骨架的连通性,这将影响骨架拓扑特性的表达。
此类方法也不保证骨架结果的单像素特性,这点与骨架定于是不符合的。
1.2.