CN100583164C - 一种树状形体的立体分解和分级骨架提取方法 - Google Patents
一种树状形体的立体分解和分级骨架提取方法 Download PDFInfo
- Publication number
- CN100583164C CN100583164C CN200710062988A CN200710062988A CN100583164C CN 100583164 C CN100583164 C CN 100583164C CN 200710062988 A CN200710062988 A CN 200710062988A CN 200710062988 A CN200710062988 A CN 200710062988A CN 100583164 C CN100583164 C CN 100583164C
- Authority
- CN
- China
- Prior art keywords
- point
- skeleton
- tree
- branch
- distance
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 50
- 238000006243 chemical reaction Methods 0.000 claims abstract description 80
- 239000007787 solid Substances 0.000 claims abstract description 44
- 238000000605 extraction Methods 0.000 claims abstract description 39
- 238000000354 decomposition reaction Methods 0.000 claims abstract description 22
- 239000000284 extract Substances 0.000 claims description 30
- 238000009432 framing Methods 0.000 claims description 23
- 230000008569 process Effects 0.000 claims description 10
- 241001400675 Sympodium Species 0.000 claims description 9
- 230000005484 gravity Effects 0.000 claims description 5
- 230000015572 biosynthetic process Effects 0.000 claims description 4
- 230000008676 import Effects 0.000 claims description 4
- 241001269238 Data Species 0.000 claims description 3
- 239000012141 concentrate Substances 0.000 claims description 3
- 230000016507 interphase Effects 0.000 claims description 3
- 238000012804 iterative process Methods 0.000 claims description 3
- 238000002203 pretreatment Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 abstract description 3
- 238000004422 calculation algorithm Methods 0.000 description 24
- 230000000694 effects Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 238000012217 deletion Methods 0.000 description 5
- 230000037430 deletion Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 241000196324 Embryophyta Species 0.000 description 4
- 238000005259 measurement Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000007704 transition Effects 0.000 description 4
- 241000218652 Larix Species 0.000 description 2
- 235000005590 Larix decidua Nutrition 0.000 description 2
- 241000124033 Salix Species 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 241001270131 Agaricus moelleri Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 210000004204 blood vessel Anatomy 0.000 description 1
- 230000037237 body shape Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000011960 computer-aided design Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 210000000056 organ Anatomy 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 244000144985 peep Species 0.000 description 1
- 230000008635 plant growth Effects 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/34—Smoothing or thinning of the pattern; Morphological operations; Skeletonisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/42—Global feature extraction by analysis of the whole pattern, e.g. using frequency domain transformations or autocorrelation
- G06V10/422—Global feature extraction by analysis of the whole pattern, e.g. using frequency domain transformations or autocorrelation for representing the structure of the pattern or shape of an object therefor
- G06V10/426—Graphical representations
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Analysis (AREA)
Abstract
本发明公开一种树状形体的立体分解和分级骨架提取方法,对立体进行整型边界距离变换和整型单种子点距离变换,用于构造极大中心点图;生成树状聚类图,把聚类图和极大中心点图结合提取每个聚类的中心代表点,构造分类骨架用于分类;把分叉点作为种子点进行整型种子距离变换而构造各分枝的截面;通过曲面单向距离变换构造截面的等距面,进而获得分割面而完成立体分解,即把立体分解成许多分块;最后对各个分块进行精确的欧拉距离变换,构造三维加权有向图,计算紧致中心代价值,从中提取极小扩张树;获取分块的中心骨架和到各个分割面中心的连接骨架,最终得到分级骨架。对多个数据集的测试说明本发明能够精确地进行形体的测量和形状表示。
Description
技术领域
本发明属于模式识别与科学计算可视化相结合的交叉学科技术领域,涉及树状形体(简称形体)的立体分解和分级骨架提取技术。
背景技术
随着数据采集技术的迅速发展,在计算机图形学、计算机辅助设计技术和医学图像系统中所使用的图像数据分辨率越来越高,数据量也越来越大。骨架化作为一种特征提取和特征表示方法,可以有效地删除冗余信息和保留特征信息。在虚拟现实中,骨架化可以从数据中提取出路径以指导漫游,防止在漫游中迷路。对于林业的可视化和测量,骨架可以精确的表示形体的拓扑结构以便进行树木的识别,并且可以精确地对树木的长度和半径进行测量。对于文字、工程图、指纹中的“细茎”状图像等都是长而窄的带状图像,也常常需要通过计算它们的骨架来进行识别或重构等处理。在视频处理中,通过骨架提取图像中主要特征,可以精确地对运动形体进行跟踪。
很多形体,如医学中的血管、气管、林业中的各种树木,以及人体的骨架,都可以表示成为形体,因此形体的骨架提取得到了广泛的重视,人们陆续提出了一些典型算法,主要可分为voronoi方法,拓扑细化和距离变换。同时,形体分解是形体表示的基本方法,在二维形体和曲面分解方面也提出一些算法。大型CT可用于得到三维树木的立体数据。
Ogniewicz利用计算几何中的重要工具-Voronoi图来提取骨架。对于平面中的点,可以得到该点的Voronoi多边形,而Voronoi图就是这些Voronoi多边形的集合。Voronoi图中形体边界的点所产生的Voronoi边或Voronoi面靠近形体的中心,因此这些边可认为是形体的骨架。但是该方法一般只能适用于三角网格模型,而且生成的骨架包含很多杂枝。
Rosenfeld提出了拓补细化的骨架化方法。该算法首先定义那些删除以后不影响拓补性质的点为简单点。然后从这个概念出发,考虑体素点的8-邻域或者26-邻域的拓补关系,设计出一些删除模板,使得模板中的体素点满足简单点的定义。然后利用这些删除模板一层层地剥开形体,直到得到骨架为止。但是这种方法计算量太大,运行时间太长。Ma改进了删除模板,并对删除操作进行并行处理以加快运行速度。但细化的结果经常包含很多杂枝。
Borgefors提出了基于距离变换的骨架化方法。距离变换方法的主要根据是其骨架定义:立体的骨架是立体内部到立体边界距离最大的点的集合。Zhou提出的体素编码和聚类图方法,可以有效地分解形体,但其骨架的拓扑结构与形体的拓扑结构在分叉处不一致。Wan方法是先对体数据进行距离变换,然后将变换后的距离图看成一个有向中心性加权图,使用以边界距离值的倒数建立极小扩张树的方法来改进Dijkstra最短路径生成算法,从而使得到的骨架点尽量的不偏离中心,但是会出现中心线的“扰动”现象。
上述三种方法都不能很好地解决分叉处形体中心线的偏移问题。
对于形体的认识,Hoffman和Richards把形体自然分解成基本部件(parts),把分解用于分类。Kimia等提出了把形体分级分解为部件的方法。Rom等提出了利用中轴逐步分解二维形体的方法。先分解形体,再提取分解区域的中轴,而中轴就是二维形体的自然表示。但这三种方法不能提取中心性良好的三维立体形体的分级骨架,所以不能解决三维形体的表示、测量和识别等问题。Katz等按照曲面的凹凸特性和非凹凸特性把网格曲面逐步分解为简单分片(patch),但也不能用于求骨架。
发明内容
现有技术不能提取中心性良好的三维立体形体的分级骨架,不能解决三维形体的表示、测量和识别,为了解决现有技术的不足,本发明的目的是求取高精度的中心线表示形体,消除在分叉处分枝对主枝骨架的影响,提供一种形体的立体分解和分级骨架提取方法。
为了实现本发明的目的,本发明提供的树状形体的立体分解和分级骨架提取方法步骤包括:
数据提取步骤:获取形体立体的空间数据并选择整个形体的种子点;
分类骨架步骤:
对形体立体的空间数据进行整型边界距离变换的,构造极大中心点图;
对选取的种子点进行整型单种子点距离变换即只有一个种子点的距离变换,生成树状聚类图,用于寻找形体的末梢位置和分叉位置,得到分叉点并生成分叉点连接;
将极大中心点图和树状聚类图结合提取每个聚类的代表点,构造具有中心性、分叉性和拓扑连接性的分类骨架,用于形体分类(shapeclassification);
体素切割步骤:确定形体分解成由柱形立体组成分类骨架的和分叉点,对分叉点进行局部整型种子点距离变换,寻找主枝和侧枝若干个具有相同距离值的体素截面,将主枝和侧枝截面作为种子面进行距离变换,得到体素切割面,从而分解形体为无分叉的立体形体,所述每个柱形立体为一个分块(sub-volume);所有这些分块的连接关系形成了一个树状拓扑结构;
骨架提取步骤:对分块进行实型边界距离变换,构造包含中心程度和累加种子距离为准则的代价权值,建立极小扩张树,提取中心骨架和到各个分割面中心的连接骨架,按照原拓扑关系把骨架连接成一个完整的结构化分级骨架并且输出。
根据本发明的实施例,所述分类骨架的提取是利用立体分解的结果,在各个分块中提取其对应的骨架线段,将各个分块的骨架线段相连,记录它们之间的连接关系。
根据本发明的实施例,分类骨架还包括中心化根梢连接路径:
对每一个末梢点,提取由物体的体素组成、两端分别为树根和末梢的一条路径,使所有分块被正确连接的路径。
根据本发明的实施例,所述中心化根梢连接路径的提取方法如下:
首先寻找各个末梢聚类,使路径上的点在所在的聚类中进行移动,以聚类中具有最大B-距离值的点为第一个当前点;对于多个最大B-距离值的点,则选取这些点的重心体素为第一个当前点;
对于每一个当前点,寻找其6-邻域中具有最小S-距离值的点;
重复上述找点过程,直到遇到种子点为止;
利用一系列S-距离的点,从各条路径末梢点开始,沿着S-距离值从大到小的方向,到种子点结束,获得从种子点聚类到末梢点聚类之间的所有聚类;
消除系列中两个或多个属于同一个聚类的点,把这些点按照种子距离从小到大连接起来,形成丛状或发散状的根梢连接路径。
根据本发明的实施例,对根梢连接路径点的中心化:
如果当前处理的聚类中极大中心点集为空,则选择边界距离最大点集的中心体素为代表点,并把这个距离值记为半径;
如果当前聚类的极大中心点集和边界距离最大点集都不为空,则在这两个点集中选择其中到刚选定的前一个聚类中心特征点距离最小的体素点作为当前聚类的特征点,其对应的边界距离记为半径。
根据本发明的实施例,分类骨架还包括主枝的确定:
把同一个分叉处所有路经进行主次排序,选出主路径;所有路经的主次排序决定了各个分枝之间的主次关系,从而区分出主枝和子枝;把这些路径在各分叉点附近按之间的距离进行合并。
根据本发明的实施例,选取主路径还包括:
利用聚类的半径,选半径最大的路径为主路径;
如果主路径的半径明显大,则为路径丛的父路径,该形体为单轴形体,对应于单轴植物;否则,为兄弟路径,该形体为合轴形体,对应于合轴植物或气管。
根据本发明的实施例,各级路径的获取步骤包括:
1)对于单轴形体的父路径作为总体中心路径,需要把子路径的出发点归于其内的某个体素;对每一个子路径按照由稍到根的顺序,若子路径上某点离父路径的距离小于μ,则所有子路径在此并入父路径;
2)对于合轴形体的所有路径相聚,若存在某体素使得所有兄弟路径之间的距离在其附近开始小于μ,则此体素为骨架的分叉点,而父路径为此点之前所有路径的平均路径。
根据本发明的实施例,分枝结构的形成步骤包括:
判断所有路径和分叉点,记录下所有父子关系,获得分级骨架结构。
根据本发明的实施例,体素切割分解的具体步骤包括:
V.以分叉点为种子点进行局部S-距离变换,形成一个新的聚类图,采用1-2-3作为赋值规则;
VI.借助于聚类图,寻找具有相同局部S-距离值、处于不同分枝并且26-连接的体素截面;
VII.分别以主枝的截面和子枝的截面为种子面,采用1-1-1的赋值规则向着分叉处的方向进行单向的面距离变换,采用单步距离变换只扩展一层体素;
如果父枝和子枝所对应的当前层的距离值是N,首先对子枝的当前层继续单步距离变换,得到子枝的下一层的所有点的距离值都为N+1;
接下来再处理父枝的当前层,直到父枝下一层所有点的距离值都为N+1为止,直到子枝和父枝的当前层相交为止,记录下子枝的当前层;
VIII.上一步的子枝的最后一层作为父枝和子枝的分界面,再对父枝和子枝所对应的分块标以不同的标记,完成对立体的分解。
根据本发明的实施例,提取骨架线段的具体方法是:
将每个分块中的体数据转换成为三维有向图,生成极小扩张树,然后用于提取骨架和构成连接骨架;
构造紧致的中心性代价函数即C-代价函数,C(p);
最后建立中心性代价最小的树形结构,该结构连接了该分块的根点和所有末梢点,这个结构保持立体分解前的连接关系。
根据本发明的实施例,紧致中心代价C(p)包括:边界代价B(p)和紧致代价Q(p)
C(p)=B(p)+Q(p)
B-代价为欧拉边界距离值的倒数,该值越小越靠近中心;
B(p)=1/b(p),b(p)是当前点p到边界的距离。
根据本发明的实施例,极小扩张树的生成包括:
首先把所有分块体数据转换成为三维有向图,然后在各个分块建立极小扩张树,具体建立过程为如下叠代过程:
VI.选择种子点为C-代价的初始点,标记它并使它的父亲节点指针parent_link为空;
VII.选择C为开始的当前节点T;
VIII.对于当前节点T,将其所有未被标记的26-邻域的节点Bi都压入一个堆栈,并且对该堆栈按照中心性代价进行排序,具有最小中心性代价的节点位于栈顶;如果节点Bi的父亲节点的中心性代价大于T的代价,则使Bi的父亲节点指针parent_link指向T;
IX.压出堆栈顶端的节点,标记它,并且将当前节点设置为压出的节点;
X.重复步骤III,IV,直到堆栈为空为止。
根据本发明的实施例,骨架提取和分级连接包括:
确定当前分块所对应的极小扩张树的两种体素端点为主末梢点和侧末梢点,这两类端点所对应的骨架线段被称为主骨架线和连接骨架线,其中主骨架线是对应于当前主区域的骨架,而连接骨架把子区域的骨架的起点与主区域骨架线连接起来,使得骨架的中心性、分级性和拓扑连接性得以保持;
提取主骨架线:由主末梢点开始沿着极小扩张树不断的倒退,直到遇到分块根点为止,所遇到的所有点即为主骨架线上的点,各点对应的边界距离为相伴的半径,把这些点和半径按顺序记录下来,即为主骨架线;
提取连接骨架线:从侧末梢点开始沿着极小扩张树倒退,直到遇到主枝骨架线上的点为止,连接骨架线最终汇入主骨架线即整体中心线;
求得所有主骨架线和连接骨架线的几何位置自然连接成一个完整的树状骨架线,由根到所有末梢,获得具有良好的中心性和分类性的分级骨架线。
附图说明
图1本发明算法流程图
图2本发明点距离变换图与极大中心点图
图3本发明种子点距离聚类图
图4本发明分枝聚类图以及包含关系
图5本发明分类骨架建立方法的比较
图6本发明丛状路径
图7本发明树状路径
图8本发明分割面构造和分叉处的立体分解
图9本发明分解后立体的特征以及立体骨架的元素
图10本发明立体分级分解结果图
图11本发明三种骨架化提取算法的结果比较
图12本发明分级骨架和立体重叠显示结果
具体实施方式
下面将结合附图对本发明加以详细说明,应指出的是,所描述的实施例仅旨在便于对本发明的理解,而对其不起任何限定作用。
1 本发明方法有益效果概述(overview of approach)
本发明解决的技术问题是求取高精度的中心线来表示形体,并消除在分叉处子枝对主枝骨架的影响。本发明的方法是通过分类骨架提取分叉中心点,借助分叉中心点来分解立体以消除子枝的影响,用精确表示的紧致中心性代价来创建极小扩张树,用极小扩张树提取形体的骨架,最终结果是树形结构的分级骨架。骨架主用要于形体的识别和跟踪、形体形状的表示和测量以及为虚拟漫游提供视点路径等。三维树状形体的骨架广泛应用于植物生长建模中的树木形体表示(description)、可视化和树木形状的测量、医学图像中的虚拟内窥漫游和器官形状表示、以及计算机视觉中的目标跟踪等。
本发明算法的核心在于基于多重距离变换提取分类骨架、基于分类骨架进行立体分解、基于立体分解提取精确的高中心性骨架。具体算法包括7个步骤:
1)、首先,对形体立体的体素空间进行两个距离变换(distancetransform)(第一次距离变换):整型边界距离变换(boundary transform)和整型种子点距离变换(start point transform)。边界距离变换所考虑的距离是到边界面的距离,而种子点距离变换所考虑的距离是到一个点的距离,该点叫做种子点(seed point)或起始点(start point),种子点选为主枝根部的中心点。
2)、其次,由边界距离变换构造极大中心点图(maximum centralpoint map),该图中每一个点的特征是在边界距离变换中自己的距离在一定阈值范围内超过其周围点的平均距离。
3)、再其次,通过局部连接关系把形体转化为一个树状聚类图(tree-like cluster graph),把聚类图和极大中心点图结合,提取每个聚类的代表点,从而构造一个兼顾中心性、分叉性和拓扑连接性的分类骨架(classification skeleton),此骨架的价值在于为形体进行分类,但其缺点在于相邻点不一定是26-连接的,而且有一定误差。
4)、然后,把分类骨架中的每个分叉点(ramification point)作为种子点再进行局部种子点距离变换(第二次距离变换),寻找若干个具有相同距离值、但处于不同分枝的体素点所形成的截面(cross section),一个截面对应于一个分枝,不同分枝对应的截面互不相交。截面的个数等于该分叉处分枝的个数。
5)、随后,把这几个截面作为种子面向着分叉点方向进行曲面距离变换(到面的单向距离变换,第三次距离变换),得到多系列波面(wave-surface)。当距离比较小的时候,同一个距离对应的每个分枝上的等距面互不相交;以后当距离增加到一定程度,同一个距离对应的每个分枝上的等距面可能相交。首次与主枝截面相交的侧枝截面就形成了立体的分割面(decomposition surface),这样应用分割面形体就被分解成许多单枝管状的分块,即立体分解(volume decomposition)。
6)、最后,对各个分块进行精确的欧拉距离变换(边界距离变换和种子点距离变换,第四次距离变换),构造包含中心程度和累加种子距离为准则的代价权值(cost weight),通过计算分块所有体素的代价值而建立分块的三维加权有向图,从中提取极小扩张树,由于累加种子距离的引入,最小代价骨架避免了中心骨架的扰动(roundabout),骨架是紧致的(compact),或者说,在中心性保持的前提下长度极小(minimumskeleton)。
7)、在各个分块中提取出骨架线段,提取到各个分割面中心的连接骨架,最终按照原拓扑关系把这些骨架连接成一个完整的结构化骨架输出,即分级骨架。
图1给出了整个算法的流程。
2 分类骨架提取
本发明的分类骨架方法是距离变换方法的一种推广和应用。分类骨架的目的在于提取至关重要的三种信息:两种点(末梢点和分叉点)、分枝关系和中心骨架。中心骨架是选择代表点来构造有一定误差而非26-连接的中心骨架线。分类骨架的价值在于为体素按特征进行分类提供依据,进而用于求取精确而紧致的骨架线。
在表示分类骨架之前,先应用数字拓扑学方法表示距离变换。
2.1距离变换
设Z3是三维离散空间或三维整数空间,V是Z3中的点集,V中的点叫体素点。V的两个点p(p1,p2,p3)和q(q1,q2,q3)有以下两种距离:
根据这两种距离,定义每一个体素的两种邻域点集:
V1 i(p)={q|D1(p,q)≤i},
在骨架化过程中,一个体素的6-邻域、18-邻域和26邻域都是比较重要的概念,分别定义为:
N6(p)=V1 1(p),
如果 或者 则p和q是n-相邻(其中n=6,18,26),其中 i=6,18,26。
设V为一个三维二值图像,S为选定的种子点所组成的集合(可以是单个点、边界面上的所有点、或某一个截面上的所有点),这些种子点都是体素点,m6-m18-m26为体素编码所使用的赋值规则。其中m6、m18和m26分别表示对6-邻域、18-邻域和26邻域的距离进行赋值的方式,根据不同需要选择不同赋值方式,例如1-2-3,4-5-6,
首先将V中所有体素点的像素值初始化为一个足够大的数值;然后开始处理那些选定的种子点集S的体素编码,并对这些种子点赋值1。赋值为1的目的是使距离的倒数有意义,除此之外,与赋值为0的作用一样。其次对S的未被处理的整层相邻体素进行赋值,即对种子点的N6 *(p)、N18 *(p)-N6 *(p)和N26 *(p)-N18 *(p)分别赋值为m6、m18和m26。假设当前处理值为m的体素点,如果m+m6、m+m18和m+m26小于当前点N6 *(p)、N18 *(p)-N6 *(p)和N26 *(p)-N18 *(p)中体素点的值,则这些体素点分别赋以m+m6、m+m18和m+m26。这样不断地迭代和扩张,直到V中所有点的都被一层一层地处理过为止。
初始点和赋值规则的选择决定了距离变换的结果。如果将立体的边界点作为种子点,则称这种变换为边界距离变换,其赋值方式叫B-编码(B-coding)。如果以单个点作为种子点,则称这种变换为种子点距离变换,其赋值方式叫S-编码(S-coding)。图2给出气管的距离变换图,其中图2(a)是边界距离变换,而图2(b)是种子点距离变换,红色、粉红色、黄色、青色和蓝色表示距离值从小到大的顺序。此时立体的每个体素点具有两种距离值:B-距离(到边界的距离)值,和S-距离(到单种子点的距离)值。见图2。
距离变换的编码可以是整型,也可以是严格的实数。整型有利于分类,而实数有利于精确计算。在立体分解之前选择粗略的整形距离赋值,如1-2-3和3-4-5,以便把距离值用于体素的按照分枝结构关系的分类。最后在求取精确路径之时,选择实数距离赋值。
在某点集内离该点集重心距离最近的体素叫做点集的重心体素
2.2种子点距离变换和种子点距离聚类图
对输入数据施行种子点距离变换,赋值规则为1-2-3,其中种子点选为立体最底端的或最粗端(树根)的中心点。种子点距离变换的作用在于寻找树桩立体的末梢位置和分叉位置,以便正确地分解分叉结构。
具有相同S-距离值且相互连接的体素点构成一个聚类,这样的聚类相当于一个以初始点为中心的波球面的一部分,该聚类以S-距离值作为聚类值,叫S-聚类(S-Cluster)。这样立体就被转换成为以聚类为基本元素的树状有向聚类图,图的方向的由树根到树梢。该聚类图中以每个聚类作为图的节点,以聚类之间是否相邻表示节点之间是否相连,聚类图的方向为S-距离值增加的方向。见图3表示种子点距离变化以后的体素点的聚类图,以及特殊的聚类点——末梢点、分叉点、极大点和种子点距离变换所用的种子点。
在聚类图中,有两种聚类具有非常重要的结构特性。末梢聚类(TipCluster)是到种子点距离局部极大的点组成的聚类。与末梢聚类相邻的其他聚类的距离值都小于该聚类的距离值,这种聚类对应于分枝结构的末梢位置,一个末梢聚类对应一个分枝。分叉聚类(RamificationCluster)是,沿着聚类图的正向,到种子点距离中其后出现类别个数增加的那一层聚类。局部来看,分叉聚类的下一层相邻聚类的类别个数要至少增加1,而且下一层相邻聚类到种子点的距离值比分叉聚类大1。分叉聚类对应于分枝结构的分叉位置。
以下几个概念有利于清晰描述本发明的方法。种子聚类(SeedCluster)是单个种子点所构成的聚类。过渡聚类(Transition Cluster)是所有非种子聚类、非末梢聚类以及非分叉聚类的一种聚类,其前后都有聚类,而且前后聚类的个数都是1。根部聚类(Root Cluster)是离种子聚类最近的分叉聚类。叉前聚类(Pre-Ramification Clusters)是分叉聚类之前的多个层所表示的聚类,其个数为根据需要所取的层数。叉后聚类(Post-Ramification Clusters)是分叉聚类之后一层的若干个聚类,个数为分枝的个数。
忽略种子聚类和过渡聚类,并且认为分叉聚类和叉后聚类的先后关系为包含关系,那么所有分叉聚类都包含若干个子聚类,子聚类也可以是分叉聚类,也可以是末梢聚类。这样,所有聚类根据包含关系便形成了一个树状图。末梢聚类没有子聚类。最大的聚类是根集合。如图4中t1、t2、t3、t4表示末梢点,而r0、r1、r2、r3表示分叉点。
2.3聚类代表点与极大中心点图
对输入数据施行边界距离变换,赋值规则为1-2-3。
为了构造骨架,从每个聚类中选择出一个点来代表该聚类。以往的方法(Zhou,Dingrong Yi,Shahrokni的方法)都是选择聚类中一个具有最大B-距离值的点或者选择它们的重心体素(如果该聚类中有多个最大的B-距离值)。但是这样的代表点,由于不考虑相邻聚类的连接关系,不能保持原立体的拓扑特征,如附图5(a)所表示,所以选择出了错误的分叉聚类点并且产生错误的连接分叉关系。图5(b)是本专利的结果,说明连接关系正确。
本发明采用了聚类代表点和极大中心点图的结合来解决这样的问题。聚类代表点是每个聚类包含的、兼顾中心性和拓扑连接关系的特征点。非分叉处的聚类包含一个代表点,而分叉处的聚类(包括分叉聚类及其向前的若干个相邻聚类,相邻聚类的个数与分叉开口处的形状有关)有多个代表点,一个代表点对应于一个分枝(branch)。
假设当前点p的边界距离值为b(p),点p的平均距离m(p)定义为:
如果p满足条件b(p)-m(p)>λ,则可称p为极大中心点,其中λ为事先设定的极大阈值,表示中心性的误差,λ的作用在于扩大局部中心点的范围,以便选择更合理的代表点,λ可以交互设定,通常选为1.5。
所有的极大中心点就可以构成了一个极大中心点的无序图,叫极大中心点图,如图2(c)所示。接下来我们就结合极大中心点图来提取聚类的中心代表点。
3 分级骨架(hierarchical skeleton)提取
3.1 根梢连接路径(Branching-link path)提取
对每一个末梢点而言,提取由物体的体素组成的、两端分别为树的根和末梢的一条路径。这样所有分块都可以被正确连接上。由于这样的路径不一定通过立体中心,所以叫(非中心的)根梢连接路径,在下一步要进行中心度修正。根梢连接路径的提取方法如下:
首先寻找各个末梢聚类,以聚类中具有最大B-距离值的点为第一个当前点,如果存在多个这样的点,则选取这些点的重心体素为第一个当前点。对于每一个当前点,寻找其6-邻域中具有最小S-距离值的点。因为6-邻域相邻点之间的S-距离最多为1,所以寻找到的下一个点所在的聚类必然与当前聚类相邻或相同。不断地重复上述找点过程,直到遇到种子点为止。因此可以得到一系列点,这个系列按照S-距离从大到小,从末梢点开始,到种子点结束。
这一系列的点的邻接关系为6-邻域。对于介于1和顶梢点的种子距离之间的任意一个整型距离值,系列中都有一个点的种子距离取到这个值,所以这个系列代表了从种子点聚类到末梢点聚类之间的所有聚类。
在消除系列中有两个或多个属于同一个聚类的点以后,把这些点按照种子距离从小到大连接起来,便形成了一个丛状或发散状的图,这就是根梢连接路径,见图6。由于路径上的点不在形体中心,所以不叫骨架。
3.2根梢连接路径的中心化
中心化根梢连接路径的含义是对根梢路径进行修正或使路径上的点在所在的聚类中进行移动,或者说被替换成该聚类中的另一个靠近中心的点,使得路径上的点尽量靠近立体的中心。涉及到每个聚类中的两个点集概念:极大中心点集C和边界距离最大点集B。极大中心点集C是每一个S-聚类中所有极大中心点构成的集合。边界距离最大点集B是每一个S-聚类中所有达到最大边界距离值的体素的集合。
从各条路径末梢点开始,沿着S-距离值从大到小的方向进行根梢连接路径的中心化。因为只有末梢点是中心点,所以我们需要中心化路径中的非末梢点。我们按照以下准则进行路径点的中心化:
如果当前处理的聚类中极大中心点集为空,则选择边界距离最大点集的中心体素为代表点,并把这个距离值记为半径。如果当前聚类的极大中心点集和边界距离最大点集都不为空,则在这两个点集中选择其中到刚选定的前一个聚类中心特征点距离最小的体素点作为当前聚类的特征点,其对应的边界距离记为半径。
3.3主枝的确定和分枝结构的形成
主枝的确定:确定主枝的任务在于把同一个分叉处所有路经进行主次排序,选出主路经(principal path),同时把这些路径在各分叉点附近按之间的距离进行合并。兄弟关系的判断靠的是在分叉位置的度量比较。一种简便的判断方式是按照路径的长短关系判断,但这个方法有时出现错误——主要的分块不一定最长,而往往最粗。所以我们参考后聚类的半径大小关系,选半径最大的路径为主路经。如果主路经的半径更强(半径明显大),认为主路经就是这个路径丛的父路径,这样的形体叫单轴形体,对应于单轴植物,否则,认为这个家族没有父路径而只有兄弟路径,这样的形体叫合轴形体,对应于合轴植物或气管。
各级路径的获取:1)对于单轴形体而言,父路径作为总体中心路径,需要把子路径的出发点归于其内的某个体素。对每一个子路径而言,按照由稍到根的顺序,若子路径上某点离父路径的距离小于μ,则子路径在此并入父路径。由于所有路径都从根部出发,都要相聚在一起(最差的情况在立体的根部),因此所有子路径总要汇入父路径。2)对于合轴形体而言,所有路径也都要相聚。若存在某体素使得所有兄弟路径之间的距离在其附近开始小于μ,则此体素为骨架的分叉点,而父路径为此点之前所有路径的平均路径。通常,取μ=2。
分枝结构的形成:当所有路径和分叉点判断完成以后,记录下所有父子关系,这就建立了分级骨架结构。或者说,路径丛得以合并,其结构为图7,等同于聚类图4,形体的分级结构就是树状路径图7。
考虑到整型距离的近似性和子枝体素对主枝路径提取的影响,这个路径还不是最佳的,但是可以用于求取分叉点和体素在分叉处的分解。
通过上述方法,我们可以正确地建立中心骨架,图5(a)的错误得以修正,结果如图5(b)所示。进一步,由于这个骨架包含了多种分级分类信息,使得中心性和连接性得以兼顾,所以叫分类骨架。
4立体分解volume decomposition
通过上面建立的分枝结构关系,我们可以通过分类骨架推出立体的分级连接关系以及总体拓扑结构。
体素切割或立体分解把形体分解成由柱形立体组成的分级结构,每个柱形立体叫一个分块(a sub-volume)。立体分解的关键在于分割面的构造。每一个分割面把立体分解为两部分,包括主骨架的部分叫父枝,而包括子骨架的部分叫子枝。分割面(decomposition surface)定义为一张曲面,它分割出立体的每一个分块,使分块的形状近似为柱体。在此我们的手段在于在每一个分枝上构造一张分割面,这些分割面相互不连接,而且尽量靠近分叉点,这样子枝尽可能多地与父枝分离。构造方法为:以分叉点为中心(种子点)构造球面波,尽量远地求得父枝和子枝上的对应波面,只要不与以后的分叉相交,这儿“对应”的意思是相同的种子距离。然后把波面向分叉点方向等距回退,直到二族波面相交。波面由远及近的原因在于太近的波面可能切不断立体,而太远的波面可能给父枝太多的子枝立体。
分解方法包括以下四步:
IX.以分叉点为种子点进行局部S-距离变换,形成一个新的聚类图,采用1-2-3作为赋值规则,详见图8,选择分叉点作为立体分解的中心点,而不是树的根点,其目的是使切割面尽量正对分叉位置。
X.借助于聚类图,寻找具有相同局部S-距离值、处于不同分枝并且26-连接的体素截面。
XI.以这两类截面为种子面,采用1-1-1的赋值规则向着分叉处的方向进行单向的面距离变换。与其它距离变换方法区别的是,此处的距离变换是单步的,单步的意思是只扩展(propagate)一层体素。如果父枝和子枝所对应的当前层的距离值是N,首先对子枝的当前层继续单步距离变换,得到子枝的下一层的所有点的距离值都为N+1。接下来再处理父枝的当前层,直到父枝下一层所有点的距离值都为N+1为止。这样每一步只处理一层变换,而且先处理子枝再处理父枝,直到子枝和父枝的当前层相交为止,记录下子枝的当前层。
XII.以上一步的子枝的最后一层作为父枝和子枝的分界面,再对父枝和子枝所对应的分块标以不同的标记。
按照上述四步,对聚类图中的每个分枝都得以体素切割,这样就可以最终对立体进行分解。
我们把分割面归于子枝,叫子枝根切割口(cutting-root-surface forsub-branch),所对应的由主枝上的与子枝切割口26连接的体素构成的面叫父枝侧切割口(cutting-side-surface for the main branch)。
附图8给出了一个分叉处的体素切割结果的例子。其中图8(a)为以附图5(b)中的分叉点为种子点进行局部种子点变换的结果图,不同灰度表示不同的距离值图8(b)为经过局部种子点距离变换以后得到的具有相同距离值的两个初始区域。图8(c)给出了以图8(b)的结果作为种子点进行单步的距离变换所得到的最终的分割结果。
分割以后的形状表示为一个管状立体。对每一个分解立体,都有以下特殊的点。图9表示立体分解后的特征以及立体骨架的组成,特征包括分割的切口(主枝根切口和子枝根切口)、骨架(主骨架线和连接骨架线)和点(主末梢点、侧末梢点和分块根点)。
主末梢点(main tip):当前分块所对应的末梢点。
侧末梢点(side tip):当前分块的所有子枝侧切割口的中心体素。
分块根点(main start):当前分块从父枝切割开以后的子枝根切割口的中心体素,也是这个分块的种子点。
5 分级骨架提取
应用立体分解的结果,在各个分块中提取其对应的骨架线段,记录它们之间的连接关系,并将各个分块的骨架线段相连,这就是分级骨架提取。
提取对应骨架线段的具体方法是将每个分块中的体数据转换成为三维有向图,生成极小扩张树,然后用于提取骨架和构成连接骨架。对于每一个管状分块,把分块根点(main start)选作种子点,对每个分块进行精确欧拉距离的边界距离变换,赋值准则为实数值其次,构造紧致的中心性代价函数(Compact Centrality Cost Function),即C-代价函数,C(p)。最后建立中心性代价最小的树形结构,该结构连接了该分块的根点和所有末梢点。这个结构保持立体分解前的连接关系。
5.1紧致中心代价的定义
中心线是边界面(边界线)的相反特征,中心代价以到边界面的距离为基本因素。紧致中心代价C(p)由边界代价(B-代价,B(p))和紧致代价(Q-代价,Q(p))两部分组成
C(p)=B(p)+Q(p) (1)
定义B-代价为精确欧拉边界距离值的倒数,该值越小越靠近中心。
B(p)=1/b(p),b(p)是p到边界的距离 (2)
紧致性代价Q(p)是一个累加种子距离的代价,也依赖B-代价,具体计算入下。选分块根点为种子点,其Q-代价为0,然后按照下面的赋值规则进行类似于种子距离变换的代价扩张。假设当前点为p,而q为它的26-邻域中的点,则p的Q-代价Q(p)为:
Q(p)=k·ξ·T(p) (3)
其中
ξ=min{|b(p)-b(q)|:|b(p)-b(q)|≥v;p,q∈V} (5)
k=1/T,T=min{T(p)|p∈V} (6)
在公式(3)中,b(p)的作用使得骨架靠近中心。M=min{B(p)|p∈V}为当前分块中最小的边界代价,所以(1-M*b(p))的值总是介于[0,1]之间。E(p,q)=d(p,q)-0.75, 而d(p,q)为p和q之间实际的欧拉距离值。-0.75的作用为相邻体素的距离对总代价的影响变小。由于两个相邻点之间的欧拉距离介于1和之间,因此E(p,q)的值落入区间[0.25,0.919]。在公式(4)中,ξ为所有不同B-距离所组成的集合之中任意两个不同B-距离最小差值,这使得最终任意一点的Q-代价一定小于任意的两个不同B-代价的差值。考虑到实数B-距离值可能使ξ非常小,在此使用双精度实数表示代价,使之更精确。另外,我们对B-距离值进行一个变换,使得当这个差小于v时,他们就相等。所以ξ的作用是,Q-代价对两个具有相同B-代价的体素点,将产生差别,越靠近几何中心的体素点Q-代价越大,而对于不同的B-代价,则Q-代价不起作用,因为它不影响这两个B-代价之间的差值,从而使得选择的体素靠近中心也尽量靠近种子点。
在公式(5)中,系数k的作用在于将k*T(p)的值限制在[0,1]之间,使得S(p)不至于太小,而k是体素空间V的一个全局值,所以在所有T(p)值都求出以后才能得到。
因此,中心性代价(C-代价)的作用是给出非中心性和非紧致性的代价。
5.2极小扩张树的生成
三维有向加权图是一张连接所有26连接体素的图(graph),图的节点是所有体素,每两个体素的连接关系是双向的,而且每一个方向都有一个权值,权值大小为目标的中心性代价。
首先把所有分块体数据转换成为三维有向图,然后在各个分块建立极小扩张树。建立过程为如下叠代过程。
XI.选择种子点为C-代价的初始点,标记它并设置它的父亲节点指针parent_link为空。
XII.选择C为开始的当前节点T。
XIII.对于当前节点T,将其所有未被标记的26-邻域的节点Bi都压入一个堆栈,并且对该堆栈按照中心性代价进行排序,具有最小中心性代价的节点位于栈顶。如果节点Bi的父亲节点的中心性代价大于T的代价,则设置Bi的父亲节点指针parent_link指向T。
XIV.压出堆栈顶端的节点,标记它,并且将当前节点设置为压出的节点。
XV.重复步骤III,IV,直到堆栈为空为止。
这是对Wan算法的改进。由于不用考虑分叉情况,此过程比Wan方法简捷而强壮。
5.3骨架提取和分级连接
每个分块的骨架线提取包括两步。首先确定当前分块所对应的极小扩张树的两种体素端点,主末梢点(main tip)和侧末梢点(side tip)。这两类端点所对应的骨架线段被称为主骨架线(main skeleton)和连接骨架线(side skeleton),其中主骨架线是对应于当前主区域的骨架,而连接骨架把子区域的骨架的起点与主区域骨架线连接起来,使得骨架的中心性、分级性和拓扑连接性得以保持。
然后提取主骨架线,由主末梢点开始沿着极小扩张树不断的倒退,直到遇到分块根点(main start)为止所遇到的所有点即为主骨架线上的点,各点对应的边界距离为相伴的半径,把这些点和半径按顺序记录下来,即为主骨架线。再随后提取连接骨架线,从侧末梢点开始沿着极小扩张树倒退,直到遇到主区域骨架线上的点为止。由中心代价的定义可以看出,连接骨架线最终要汇入主骨架线,因为后者是真正的整体中心线。
在求得所有主骨架线和连接骨架线以后,它们按照原来的几何位置可以自然连接成一个完整的树状骨架线,由根到所有末梢,这就是分级骨架线,具有良好的中心性和分类性。如果不使用连接骨架线,而把分块的骨架线作为其特征,这样的不连在一起的骨架线的应用价值在于三维目标的识别。
实验结果与结论
用C++语言实现了本发明所描述的方法,并且在几个不同的数据集上做了实验。所有的实验都是在一台P4 2.4G、512MB内存、操作系统为Windows 2000的PC机上完成的,显示部分使用了标准的OpenGL图形函数库。表1列出了实验数据的情况,包括体素的数量,分枝的数量,以及骨架的体素数目等。表2给出了算法每步运行的时间。
表1:实验数据
模型数据 | 物体体素个数 | 骨架体素个数 | 枝条个数 |
气管1 | 552595 | 408 | 3 |
气管2 | 581539 | 1229 | 14 |
柳树 | 49883 | 1622 | 18 |
落叶松 | 29657 | 910 | 12 |
表2:实验运行时间(单位为秒)
模型数据 | 建立聚类图 | 体素分割 | 骨架提取 |
气管1 | 24.078s | 114.094s | 377.781s |
气管2 | 51.906s | 460.672s | 572.375s |
柳树 | 10.75s | 352.656s | 74.015s |
落叶松 | 3.484s | 148.39s | 31.093s |
附图10给出了体素分割的结果。绿色、蓝色、黄色、粉红色和青色表示了分枝层次从小到大的顺序。图10(a)和图10(b)是气管的体素,图10(c)和图10(d)是树木木材的体素。明显可以看出形体被分解成不同的类似于圆柱的枝条。从附图10(c)还可以看出我们的立体分解算法还可以处理分叉是由两个以上枝条所组成的情况。
附图11列出了Ma算法(第一列),Wan的算法(第二列)和我们这个发明中所提出的算法(第三列)的结果比较图。图11的第一行列出了三种算法在气管分叉处的结果比较,从中可以看出我们的结果可以完全消除无用的杂枝,而杂枝都存在于另外两种算法的结果中。第二行给出了这三种算法在简单分叉处的结果图,从中可以看出我们的结果不受分叉的影响,始终留在物体的中心,而另外两种算法的结果都偏离了中心。第三行显示了一个多分枝的结果图,我们可以看出Ma算法的结果会在分叉处产生杂枝,Wan算法则会产生“扰动”现象,而我们的算法则可以消除这些错误。第四行给出了多分叉处的情况,从中可以看出我们算法的结果可以消除侧枝的影响,中心线保持在物体的中心。
附图12给出了从三个不同角度观察物体和中心线显示的结果图。在此,使用了特殊的可视化方法,对于非边界体素,使用不透明的单色绘制,对于边界体素,使用了半透明和光照绘制方法,把正向边界体素设置为半透明,而反向边界体素设置为不透明。可以看出我们的结果具有很强的中心性,并能保持物体的拓扑结构。
本方法的特色和创新在于利用整型距离变换方法求得分枝结构的末梢点和分叉点等关键分类信息,进行立体分解,再根据实型距离变换求得精确的、靠近中心的、26-连接的、紧致的、而且长度极小的中心骨架,最后把二者统一成为一个分级骨架。
在很多树木建模和识别软件中,树木的骨架可以有效地表达树木的结构和几何特征。如何使用信息技术的方法来测量树木的几何尺度是一个困难的技术难题。我们的方法可以通过骨架提取算法很方便地得到精确表示原树木立体的骨架,并产生树木建模软件所使用的数据。
以上所述,仅为本发明中的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可理解想到的变换或替换,都应涵盖在本发明的包含范围之内,因此,本发明的保护范围应该以权利要求书的保护范围为准。
Claims (14)
1、一种树状形体的立体分解和分级骨架提取方法,其特征在于,步骤包括:
数据提取步骤:获取立体形体的空间数据并选择整个形体的种子点;
分类骨架步骤:
对立体形体的空间数据进行整型边界距离变换,构造极大中心点图;
对选取的种子点进行整型单种子点距离变换即只有一个种子点的距离变换,生成树状聚类图,用于寻找形体的末梢位置和分叉位置,得到分叉点并生成分叉点连接;
将极大中心点图和树状聚类图结合提取每个聚类的代表点,构造具有中心性、分叉性和拓扑连接性的分类骨架,用于形体分类;
体素切割步骤:确定形体分解成由柱形立体组成分类骨架的分块和分叉点,对分叉点进行局部整型种子点距离变换,寻找主枝和侧枝若干个具有相同距离值的体素截面,将主枝和侧枝截面作为种子面进行距离变换,得到体素切割面,从而分解形体为无分叉的立体形体,每个所述柱形立体为一个分块;所有这些分块的连接关系形成了一个树状拓扑结构;
骨架提取步骤:对分块进行实型边界距离变换,构造包含中心程度和累加种子距离为准则的代价权值,建立极小扩张树,提取中心骨架和到各个分割面中心的连接骨架,按照原拓扑关系把骨架连接成一个完整的结构化分级骨架并且输出。
2、如权利要求1所述的树状形体的立体分解和分级骨架提取方法,其特征在于,所述骨架提取是利用立体分解的结果,在各个分块中提取其对应的骨架线段,将各个分块的骨架线段相连,记录它们之间的连接关系。
3、如权利要求1所述的树状形体的立体分解和分级骨架提取方法,其特征在于,分类骨架还包括中心化根梢连接路径:
对每一个末梢点,提取由物体的体素组成、两端分别为树根和末梢的一条路径,使所有分块被正确连接的路径。
4、如权利要求3所述的树状形体的立体分解和分级骨架提取方法,其特征在于,所述中心化根梢连接路径的提取方法如下:
首先寻找各个末梢聚类,使路径上的点在所在的聚类中进行移动,以聚类中具有最大B-距离值的点为第一个当前点;对于多个最大B-距离值的点,则选取这些点的重心体素为第一个当前点;
对于每一个当前点,寻找其6-邻域中具有最小S-距离值的点;
重复上述找点过程,直到遇到种子点为止;
利用一系列S-距离的点,从各条路径末梢点开始,沿着S-距离值从大到小的方向,到种子点结束,获得从种子点聚类到末梢点聚类之间的所有聚类;
消除所述一系列S-距离的点中两个或多个属于同一个聚类的点,把这些点按照种子距离从小到大连接起来,形成丛状或发散状的根梢连接路径。
5、如权利要求4所述的树状形体的立体分解和分级骨架提取方法,其特征在于,对根梢连接路径点的中心化:
如果当前处理的聚类中极大中心点集为空,则选择边界距离最大点集的中心体素为代表点,并把这个距离值记为半径;
如果当前聚类的极大中心点集和边界距离最大点集都不为空,则在这两个点集中选择其中到刚选定的前一个聚类中心特征点距离最小的体素点作为当前聚类的特征点,其对应的边界距离记为半径。
6、如权利要求1所述的树状形体的立体分解和分级骨架提取方法,其特征在于,分类骨架还包括主枝的确定:
把同一个分叉处所有路径进行主次排序,选出主路径;所有路径的主次排序决定了各个分枝之间的主次关系,从而区分出主枝和子枝;把这些路径在各分叉点附近按之间的距离进行合并。
7、如权利要求6所述的树状形体的立体分解和分级骨架提取方法,其特征在于,选取主路径还包括:
利用聚类的半径,选半径最大的路径为主路径;
如果主路径的半径明显大,则为路径丛的父路径,该形体为单轴形体,对应于单轴植物;否则,为兄弟路径,该形体为合轴形体,对应于合轴植物或气管。
8、如权利要求7所述的树状形体的立体分解和分级骨架提取方法,其特征在于,各级路径的获取步骤包括:
1)对于单轴形体的父路径作为总体中心路径,需要把子路径的出发点归于其内的某个体素;对每一个子路径按照由稍到根的顺序,若子路径上某点离父路径的距离小于常数μ,取μ=2,则所有子路径在此并入父路径;
2)对于合轴形体的所有路径相聚,若存在某体素使得所有兄弟路径之间的距离在其附近开始小于μ,则此体素为骨架的分叉点,而父路径为此点之前所有路径的平均路径。
9、如权利要求6所述的树状形体的立体分解和分级骨架提取方法,其特征在于,分枝结构的形成步骤包括:
判断所有路径和分叉点,记录下所有父子关系,获得分级骨架结构。
10、如权利要求1所述的树状形体的立体分解和分级骨架提取方法,其特征在于,体素切割分解的具体步骤包括:
I.以分叉点为种子点进行局部S-距离变换,形成一个新的聚类图,采用1-2-3作为赋值规则;
II.借助于聚类图,寻找具有相同局部S-距离值、处于不同分枝并且26-连接的体素截面;
III.分别以主枝的截面和子枝的截面为种子面,采用1-1-1的赋值规则向着分叉处的方向进行单向的面距离变换,采用单步距离变换只扩展一层体素;
如果父枝和子枝所对应的当前层的距离值是N,首先对子枝的当前层继续单步距离变换,得到子枝的下一层的所有点的距离值都为N+1;
接下来再处理父枝的当前层,直到父枝下一层所有点的距离值都为N+1为止,直到子枝和父枝的当前层相交为止,记录下子枝的当前层;
IV.上一步的子枝的最后一层作为父枝和子枝的分界面,再对父枝和子枝所对应的分块标以不同的标记,完成对立体的分解。
12、如权利要求11所述的树状形体的立体分解和分级骨架提取方法,其特征在于,紧致中心代价C(p)包括:边界代价B(p)和紧致代价Q(p)
C(p)=B(p)+Q(p)
B-代价为欧拉边界距离值的倒数,该值越小越靠近中心;
B(p)=l/b(p),b(p)是当前点p到边界的距离。
13、如权利要求1所述的树状形体的立体分解和分级骨架提取方法,其特征在于,极小扩张树的生成包括:
首先把所有分块体数据转换成为三维有向图,然后在各个分块建立极小扩张树,具体建立过程为如下迭代过程:
I.选择种子点为C-代价函数的初始点,标记它并使它的父亲节点指针parent_link为空;
II.选择C-代价函数的初始点作为迭代开始的当前节点T;
III.对于当前节点T,将其所有未被标记的26-邻域的节点Bi都压入一个堆栈,并且对该堆栈按照中心性代价进行排序,具有最小中心性代价的节点位于栈顶;如果节点Bi的父亲节点的中心性代价大于T的代价,则使Bi的父亲节点指针parent_link指向T;
IV.压出堆栈顶端的节点,标记它,并且将当前节点设置为压出的节点;
V.重复步骤III,IV,直到堆栈为空为止。
14、如权利要求1所述的树状形体的立体分解和分级骨架提取方法,其特征在于,骨架提取包括:
确定当前分块所对应的极小扩张树的两种体素端点为主末梢点和侧末梢点,这两类端点所对应的骨架线段被称为主骨架线和连接骨架线,其中主骨架线是对应于当前主区域的骨架,而连接骨架线把子区域的骨架的起点与主区域骨架线连接起来,使得骨架的中心性、分级性和拓扑连接性得以保持;
提取主骨架线:由主末梢点开始沿着极小扩张树不断的倒退,直到遇到分块根点为止,所遇到的所有点即为主骨架线上的点,各点对应的边界距离为相伴的半径,把这些点和半径按顺序记录下来,即为主骨架线;
提取连接骨架线:从侧末梢点开始沿着极小扩张树倒退,直到遇到主枝骨架线上的点为止,连接骨架线最终汇入主骨架线即整体中心线;
求得所有主骨架线和连接骨架线的几何位置自然连接成一个完整的树状骨架线,由根到所有末梢,获得具有良好的中心性和分类性的分级骨架线。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200710062988A CN100583164C (zh) | 2007-01-24 | 2007-01-24 | 一种树状形体的立体分解和分级骨架提取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200710062988A CN100583164C (zh) | 2007-01-24 | 2007-01-24 | 一种树状形体的立体分解和分级骨架提取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101231760A CN101231760A (zh) | 2008-07-30 |
CN100583164C true CN100583164C (zh) | 2010-01-20 |
Family
ID=39898204
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200710062988A Expired - Fee Related CN100583164C (zh) | 2007-01-24 | 2007-01-24 | 一种树状形体的立体分解和分级骨架提取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100583164C (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101661628B (zh) * | 2008-08-28 | 2012-03-28 | 中国科学院自动化研究所 | 植物场景的快速渲染及漫游方法 |
CN101833553B (zh) * | 2009-03-09 | 2013-09-11 | 夏普株式会社 | 对数据进行聚类的方法、设备和系统 |
CN101763652B (zh) * | 2009-06-03 | 2012-05-30 | 中国科学院自动化研究所 | 一种基于分叉特征的三维骨架快速提取方法 |
CN101751698B (zh) * | 2010-01-22 | 2012-01-04 | 清华大学 | 一种三维模型的骨架提取方法及装置 |
US20140125663A1 (en) * | 2010-12-03 | 2014-05-08 | Institute of Automation, Chinese Academy of Scienc | 3d model shape analysis method based on perception information |
CN103136788B (zh) * | 2013-03-04 | 2016-01-20 | 重庆大学 | 一种三维血管分叉可视化重建方法 |
CN104462139A (zh) * | 2013-09-24 | 2015-03-25 | 中国科学院上海高等研究院 | 用户行为的聚类方法和系统 |
CN103761744B (zh) * | 2014-02-21 | 2016-06-15 | 哈尔滨工业大学 | 通用型二维点云分组方法 |
US10921877B2 (en) * | 2014-10-20 | 2021-02-16 | Microsoft Technology Licensing, Llc | Silhouette-based limb finder determination |
CN105205849A (zh) * | 2015-10-19 | 2015-12-30 | 北京白鹭时代信息技术有限公司 | 一种建立树形离散骨骼结构的方法及装置 |
CN108470331B (zh) * | 2017-02-23 | 2021-12-21 | 富士通株式会社 | 图像处理装置和图像处理方法 |
CN107507171A (zh) * | 2017-08-08 | 2017-12-22 | 东北大学 | 一种肺部ct图像气道三维骨架树状结构提取及标记方法 |
CN107492108A (zh) * | 2017-08-18 | 2017-12-19 | 成都通甲优博科技有限责任公司 | 一种基于深度学习的骨架线提取算法、系统及存储介质 |
CN108280833B (zh) * | 2018-01-18 | 2021-09-24 | 华南农业大学 | 一种植物根系分叉特征的骨架提取方法 |
CN109146850B (zh) * | 2018-07-26 | 2022-02-18 | 上海电气集团股份有限公司 | 一种多色球形目标检测定位方法及执行该方法的存储介质 |
CN110647107B (zh) * | 2019-09-26 | 2020-08-04 | 华中科技大学 | 多孔自由曲面连续式扫描测量轨迹规划方法及系统 |
CN113838198B (zh) * | 2021-08-17 | 2023-12-05 | 上海师范大学 | 一种电子地图中文字的自动标注方法、装置及电子设备 |
CN114367459B (zh) * | 2022-01-11 | 2024-03-08 | 宁波市全盛壳体有限公司 | 一种自动涂漆uv固化设备视频识别检测方法 |
CN115512121B (zh) * | 2022-08-01 | 2023-05-16 | 南京林业大学 | 非完全模拟树木水分养分传输的枝干点云骨架提取方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030031351A1 (en) * | 2000-02-11 | 2003-02-13 | Yim Peter J. | Vessel delineation in magnetic resonance angiographic images |
CN1403057A (zh) * | 2001-09-13 | 2003-03-19 | 田捷 | 利用三维欧氏距离变换实现ct图像中软组织显示的方法 |
JP2004518186A (ja) * | 2000-10-02 | 2004-06-17 | ザ リサーチ ファウンデーション オブ ステイト ユニヴァーシティ オブ ニューヨーク | 仮想的な空間に対する中心線及びツリーブランチ選択決定 |
CN1617174A (zh) * | 2004-12-09 | 2005-05-18 | 上海交通大学 | 基于图像轮廓的人肢体三维建模方法 |
CN1629888A (zh) * | 2003-12-17 | 2005-06-22 | 中国科学院自动化研究所 | 一种骨架化物体重建方法 |
CN1753028A (zh) * | 2005-09-15 | 2006-03-29 | 上海交通大学 | 基于骨架的人肢体三维运动参数估计方法 |
-
2007
- 2007-01-24 CN CN200710062988A patent/CN100583164C/zh not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030031351A1 (en) * | 2000-02-11 | 2003-02-13 | Yim Peter J. | Vessel delineation in magnetic resonance angiographic images |
JP2004518186A (ja) * | 2000-10-02 | 2004-06-17 | ザ リサーチ ファウンデーション オブ ステイト ユニヴァーシティ オブ ニューヨーク | 仮想的な空間に対する中心線及びツリーブランチ選択決定 |
CN1403057A (zh) * | 2001-09-13 | 2003-03-19 | 田捷 | 利用三维欧氏距离变换实现ct图像中软组织显示的方法 |
CN1629888A (zh) * | 2003-12-17 | 2005-06-22 | 中国科学院自动化研究所 | 一种骨架化物体重建方法 |
CN1617174A (zh) * | 2004-12-09 | 2005-05-18 | 上海交通大学 | 基于图像轮廓的人肢体三维建模方法 |
CN1753028A (zh) * | 2005-09-15 | 2006-03-29 | 上海交通大学 | 基于骨架的人肢体三维运动参数估计方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101231760A (zh) | 2008-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100583164C (zh) | 一种树状形体的立体分解和分级骨架提取方法 | |
CN101763652B (zh) | 一种基于分叉特征的三维骨架快速提取方法 | |
CN108776993B (zh) | 带有孔洞的三维点云的建模方法及地下电缆工井建模方法 | |
CN105825550B (zh) | 顾及一致性的复杂三维建筑物模型剖切建模方法 | |
CN103106684B (zh) | 一种带叶状态树木形态结构三维重建的方法和系统 | |
CN102004922B (zh) | 基于骨架特征的高分辨率遥感影像飞机提取方法 | |
De Floriani et al. | Applications of computational geometry to geographic information systems. | |
CN109360260A (zh) | 一种三角网格三维模型的切挖重构算法 | |
CN101807308A (zh) | 三维模型分割装置和方法 | |
CN107016725A (zh) | 一种顾及LiDAR点云数据分布差异的植被三维实景建模方法 | |
CN103942838A (zh) | 基于点云数据的单树三维建模与形态参数提取的方法 | |
CN101944239A (zh) | 三维模型分割方法、装置以及包含该装置的图像处理系统 | |
CN101783016A (zh) | 一种基于形状分析的树冠外形提取方法 | |
CN104851126B (zh) | 基于广义圆柱体的三维模型分割方法及装置 | |
CN106127857A (zh) | 综合数据驱动与模型驱动的机载LiDAR数据建模方法 | |
CN103247041A (zh) | 一种基于局部采样的多几何特征点云数据的分割方法 | |
CN106897445A (zh) | 一种基于ArcGIS的改进边界划定操作的新型方法 | |
CN103871100A (zh) | 基于点云与数据驱动的树木模型重建方法 | |
KR20140142470A (ko) | 나무 모델과 숲 모델 생성 방법 및 장치 | |
CN109344533B (zh) | 地下工井电缆网络模型的建立方法 | |
CN111028335B (zh) | 一种基于深度学习的点云数据的分块面片重建方法 | |
CN109359322A (zh) | 基于Omniclass分类技术的新型水利工程BIM唯一编码方法 | |
CN105279794B (zh) | 基于Micro-CT技术的储层岩心多组织模型构建方法 | |
Li et al. | √ 2 Subdivision for quadrilateral meshes | |
CN103236043A (zh) | 一种植物器官点云修复方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100120 Termination date: 20190124 |