细化的过程比较复杂,从而需要给出大量的删除条件或者特殊的规则,以避免在细化过程中造成不连通的现象。而且,细化法只是考虑局部连通关系,无法对图形特征进行全局的把握,使它对噪声特别敏感,含有大量噪声的边界常常会导致许多点被误认为端节点。
1.2.3基于距离变换的方法
基于距离变换的方法是利用物体的连通性,对局部领域进行距离变换赋值,从而抽取出物体的骨架点。物体内的每一点的DT(Distance Transform)值被定义为这个点到边界点的最小距离。由于骨架点相对于物体的边界而言应当处于中心的位置,而从理论上讲 ,最接近于物体中心的点应该具有最大的 DT 值。因此,DT值就能为骨架点的确定提供有用的信息。
距离度量(Distance Metric)是衡量图像中两点间距离的方法,目前,有很多种距离规则可以用于计算距离变换值。例如两点 间的欧式距离就可以提供足够的信息来判断该点是否位于中心。但是在实际计算中,两点间的欧式距离为:
其中,和分别为两点的笛卡尔坐标,其计算代价是非常高的,如此精确的距离计算也是不必要的,在一些文献中,使用Manbattan距离或者Cbess-board距离来加快计算。根据体图形学的理论,在三维空间中,物体是以离散网格的形式采样的。因此可以用加权距离规则来近似欧式距离。这种规则被定义为 a-b-c 形式例,其中a为面相邻元之间的局部距离,b为边相邻元之间的局部距离,c 为点相邻之间的局部距离。
依据距离的参照据,提取骨架的距离场可分为两类:到源点的距离场,记为DFS(Distance Field from Source),一般在模型表面上选取一个源点,然后计算模型表面上或内部的所有点到该源点的距离,得到的距离场即为DFS;到模型边界的距离场,记为DFB(Distance Field from Boundary),对于模型内部的某一点,计算该点到模型边界的最短距离,得到的距离场即为DFB。基于这两种距离场的骨架提取方法 分别称为DFS方法和DFB方法。距离场方法,一般需要先将模型离散为规则数据场的体素表达,再进行骨架提取的工作。
在这些方法中,它们大多使用 Dijkstra算法来构造距离场或者进行骨架节点的搜索。Dijkstra算法事先构造某特定权值来度量图中路径的长度,然后从图的某指