一种任意类型点集数据之间的精确豪斯多夫距离计算方法与流程

文档序号:11865075阅读:来源:国知局

技术特征:

1.一种任意类型点集数据之间的精确豪斯多夫距离计算方法,其特征在于,包括以下步骤:

步骤1:输入两点集数据A和B,并执行下述判断;

如果点集是规则化数据,则执行下述步骤3;如果点集是散乱无序的点云数据,则执行下述步骤2;

步骤2:采用莫顿曲线预处理散乱无序的点集数据A和B,使点集规则有序且具有很好的空间局部性;

步骤3:使用局部搜索算法分别计算出单向豪斯多夫距离h(A,B)和h(B,A);

步骤4:比较单向豪斯多夫距离h(A,B)和h(B,A),取其中的最大值即为豪斯多夫距离H(A,B)。

2.根据权利要求1中所述的任意类型点集数据之间的精确豪斯多夫距离计算方法,其特征在于,步骤2中所述采用莫顿曲线预处理散乱无序的点集数据A和B,其具体实现包括以下子步骤:

步骤2.1:对点集中的每一个点进行莫顿编码;对于给定的多维点数据坐标,其莫顿码的计算为交错每一维用二进制表示的坐标值;

步骤2.2:根据莫顿码值使用基数排序方法按大小升序排序,得到莫顿曲线,这时点集按着莫顿曲线的顺序具有很好的空间局部性。

3.根据权利要求1中所述的任意类型点集数据之间的精确豪斯多夫距离计算方法,其特征在于,步骤3中所述使用局部搜索算法分别计算出单向豪斯多夫距离h(A,B)和h(B,A),其具体实现包括以下子步骤:

步骤3.1:计算单向豪斯多夫距离h(A,B),定义参数preindex初始化为0,用于存储遍历B时中止循环的索引位置,该位置用于作为下一个循环搜索开始的地方;定义参数cmax初始化为0,表示临时的单向豪斯多夫距离;定义参数cmin初始化为无穷大,表示临时的最小值;

步骤3.2:设A中的一个点a,求h(a,B),从preindex位置开始左右遍历B中的点,计算点a与B[preindex+1],B[preindex-1]点的欧式距离dist;

步骤3.3:将dist与cmax比较,如果dist<cmax,则执行下述步骤3.4;如果dist>=cmax,则执行下述步骤3.5;

步骤3.4:如果dist<cmax,那么中止遍历B,跳出循环,将当前索引值赋值给preindex,同时将cmin赋值为0,执行下述步骤3.6;

步骤3.5:如果dist>=cmax,将dist与cmin比较,当dist<cmin时将dist的值更新cmin的值;然后往preindex的左右方向继续遍历B,直到找到小于cmax的点或者所有B中的点都已遍历;

步骤3.6:依次遍历A中的点,当遍历完A中所有的点后,cmax的值即为单向豪斯多夫距离h(A,B),同理求得h(B,A)。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1