欢迎来到天天文库
浏览记录
ID:13029371
大小:163.50 KB
页数:5页
时间:2018-07-20
《一种基于水平集的骨架提取方法1.2》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、一种基于水平集的骨架提取方法鲍征烨,周卫平,舒华忠(东南大学影像技术实验室南京210096)摘要:本文实现了基于levelset方法的骨架提取。简要介绍了levelset及其快速算法——快速行进法(FastMarchingMethod),并且在此方法的基础上提出了一种骨架提取算法,并提取骨架,通过与传统FMM算法比较,实验结果证明该方法简单有效,并且具有很好的鲁棒性。关键词:水平集,骨架提取,距离变换,FMM,阈值AmethodofextractingskeletonbasedonLevelSetBaoZheng-ye,Zho
2、uWei-ping,ShuHua-zhong(labofimagescienceandtechnology,SoutheastUniversity,NanJing,210096)Abstract:Inthispaper,weuseamethodbasedonLevelSettoextracttheskeletonofobjects.WeintroducedLevelSetandFastMarchingMethod.Andhereitisusedtoextractingskeletonofobjects.Weproposeame
3、thodforextractingskletonbasedonFastMarchingMethod.Thismethodisverysimpleandtheresultiseffective.Keywords:LevelSet,SkeletonExtraction,DistanceTransform,FastMarchingMethod,Threshold0引言传统的提取骨架的方法有基于数字形态学的方法和基于距离变换的方法,两种方法在连续域都是完备的。但在离散域各有其优缺点,细化得到的骨架具有良好的拓扑性,但是骨架点的位置却不
4、准确;基于距离变换的方法在骨架点的准确度上效果好,但连通性一般却很难保证。本文所采用的基于LevelSet方法[1]的骨架提取方法属于基于距离变换的方法,和一般的距离变换方法相比在于具有更好的稳定性以及拓扑无关性[2]。曲线在演化过程中可能会产生尖点、断裂为多条曲线,或者两条或多条曲线融合为一条。LevelSet方法可有效地处理这些情况,缺点是计算复杂度大。直到sethian提出了FastMarchingMethod(FMM),有效降低了LevelSet的运算复杂度。LevelSet的方法才开始广泛运用。基于上述认知,本文实现
5、了基于FMM[3]的骨架提取方法,并且在此基础上加以改进。该方法计算简单,更稳定。而且从试验结果看,提取骨架准确性和鲁棒性相当好。1FMM方法以二维情况为例,简单介绍FMM方法[3]。假设C(T)是定义在二维平面的曲线,F是其法线方向上的速度。考虑曲线运动的特殊情况,运动速度F≥0,即曲线C(T)是一直向外运动。假设曲线经过指定点的时间为T,那么T满足(8)在初始曲线上,T(x,y)=0。式(8)即是著名的Eikonal方程的一种形式。利用逆向差分法,可以根据下式得到式(8)的稳定解[9]: (9)式中,和分别为后向和前向差分
6、算子。;(10)FMM算法中(为常量为图像灰度的梯度)下面是FMM方法的具体算法[3,4,5](1)初始化。①KNOWN点:即是曲线C(0)所在的网格点,或指定的种子点,并记时间。②INSIDE点:考察KNOWN点在曲线外的4邻点,如果有不是KNOWN点的,则初始化为Acctive点,并赋予到达时间,将所有Acctive点放入一个排序堆栈中,排序堆栈按照每点的到达时间由小到大排序。③Faraway点:剩余的点初始化为Faraway点,并记到达时间。(2)曲线演化。①假设A点是所有INSIDE点中具有最小时间的点,则标记A点为K
7、NOWN点,并将A点从INSIDE点中删除。②考察A点的4邻点:若是KNOWN点,则不改变时间;若是INSIDE点,则更新该点时间,并调整其在排序堆栈中的位置;若是Faraway点,则将其标记为INSIDE点,更新该点时间,并将其放入排序堆栈中。③若某一点的到达时间大于指定阈值,或排序堆栈为空,则循环结束,否则转到①。地方。Sethian在文献[3]中详细分析了快速行进法的计算复杂度为,这里N为图像的点数。显然,FMM比水平集的直接数值计算法的计算复杂度小多了。2基于FMM的骨架提取算法我们讨论如何改进基于FMM的骨架提取算法
8、,由文献[9]知骨架点就是由于紧凑的边界线段,在FMM界面传播过程中消失的点。所有在界面传播的点都来自于边界,边界里面的点在边界上都有一个源点。我们只需确定演化曲线上的每一点来自边界线上的哪一点。我们为每个网格点增加一个距离值设为U[10],初始时,仅在边界线上T=0的点选取
此文档下载收益归作者所有