[发明专利]一种面向树木的三维点云数据的简化方法有效
| 申请号: | 201810729237.1 | 申请日: | 2018-07-05 |
| 公开(公告)号: | CN108961397B | 公开(公告)日: | 2022-06-21 |
| 发明(设计)人: | 张素莉;许骏;付浩海;张华;潘欣;张妳妳 | 申请(专利权)人: | 长春工程学院 |
| 主分类号: | G06T17/00 | 分类号: | G06T17/00 |
| 代理公司: | 吉林长春新纪元专利代理有限责任公司 22100 | 代理人: | 陈宏伟 |
| 地址: | 130021 吉林*** | 国省代码: | 吉林;22 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 面向 树木 三维 数据 简化 方法 | ||
1.一种面向树木的三维点云数据的简化方法,包括以下步骤:
S1. 输入包含n个三维空间点的树木点云数据集PointDataSet,输入网格边长width,输入同质化聚束数量clusternum,输入简化百分比percent:
S101. 输入树木点云数据集PointDataSet,PointDataSet为一个三维空间点构成的数据集{p1, p2, …, pn}, 该数据集包含n个三维空间点; 其中任意一个三维点pi={px,py,pz}, px为该点在x轴的坐标,py为该点在y轴的坐标,pz为该点在z轴的坐标;
S102, 统计PointDataSet中的所有点,获得PointDataSet中所有点的x坐标最大值xmax,x坐标最小值xmin,y坐标最大值ymax,y坐标最小值ymin,z坐标最大值zmax,z坐标最小值zmin;
S103, PointDataSet中的所有点的x轴跨度xdistance=xmax-xmin,y轴跨度ydistance=ymax-ymin,z轴跨度zdistance=zmax-zmin;
S104,输入网格边长width,输入同质化聚束数量clusternum;
网格边长width的默认值为xdistance/1000;
同质化聚束数量clusternum的默认值为100;
S2. 将PointDataSet所占用的三维空间按照边长为width切割为多个立方网格,构成立方网格列表CubeList:
S201,立方网格列表CubeList=空集合;
S202,x迭代器xcounter=xmin;
S203, y迭代器ycounter=ymin;
S204, z迭代器zcounter=zmin;
S205,建立一个立方网格Cube,Cube包含以下属性:
Cube对应的空间范围scope为从(xcounter,ycounter, zcounter)至(xcounter+width,ycounter+width, zcounter+width);
Cube的中心点位置的坐标:
cp=(xcounter+width/2,ycounter+width/2,ycounter+width/2);
Cube的点密度density=0;Cube的隶属类目category=0;Cube的同质连权值priority=0;
S206,Cube的点密度density=在PointDataSet中包含在Cube空间范围内的所有空间点的个数;
S207,将Cube加入到CubeList之中;
S208,zcounter=zcounter+width;
S209,如果zcounter=zmax则转到S210,否则转到S205;
S210,ycounter=ycounter+width;
S211,如果ycounter=ymax则转到212,否则转到S204;
S212,xcounter=xcounter-1;
S213,如果xcounter=xmax则转到S214,否则转到S203;
S214,该步骤计算过程结束;
S3. 计算CubeList中每一个Cube的类属关系category,获得距离指数distanceindex:
S301,将CubeList中每一个Cube的点密度density作为输入数据,通过k-means算法将输入数据划分为clusternum个类目,获得clusternum个聚类中心c[1],c[2],…c[clustenum];
其中c[1]表示编号为1的聚类中心,c[2]表示编号为2的聚类中心,c[clustenum]表示编号为clusternum的聚类中心;c[i]表示第i个聚类中心;
S302,对于CubeList中的每一个Cube,计算该Cube的density与clusternum个聚类中心的距离,并找到与density距离最近的聚类中心,将聚类中心的编号存储到Cube的类属关系category之中;
S303,建立数组CloseDistance=空数组;
S304,对于PointDataSet中的每一个三维空间点,找到与该点最近的另外一个三维空间点并将距离值加入到CloseDistance之中;
S305,计算CloseDistance的均值avgdistacne;
S307,统计CubeList所有Cube的category的均值avgcatalog;
S308,获得距离指数distanceindex,其计算公式如下:
S4.计算CubeList中每一个Cube同质连权值priority:
S401,对于CubeList中的每一个Cube进行以下步骤的处理;
S402,当前要处理网格currentCube=在CubeList中取出一个Cube;
S403,当前要处理的中心点centerpoint=currentCube的中心点位置的坐标cp;
S404,邻居列表neighborlist=计算CubeList中所有Cube的cp到centerpoint的距离,取出距离小于等于distanceindex的所有Cube;
S405,allnum=neighborlist中Cube的数量;
S406,同质化计数器scounter=0,异质化计数器yzcounter=0,迭代计数器counter=1;
S407,testCube=取出neighborlist中第counter个Cube;
S408,diff=ABS( currentCube的隶属类目category-testCube的隶属类目category);
其中ABS表示计算绝对值;
S409,如果diff大于2则yzcounter=yzcounter+1,否则scounter=scounter+1;
S410,counter=counter+1;
S411,如果counter大于allnum则转到S412,否则转到S405;
S412,计算同质连接权限pri, 对应公式如下:
S413. currentCube的同质连权值priority=pri;
S5,依据同质连权值不断将三维空间点从PointDataSet中剔除,直到达到简化百分比:
S501, std=计算CubeList中所有Cube的同质连权值priority的标准差;
S502,轮转值circle=std/clusternum;
S503,对CubeList的所有Cube按照priority值进行从小到大的排序;
S504,待处理最小网格FirstCube=取出CubeList中排在第一位的Cube;
S505, ptlist=在PointDataSet内,取出包含在FirstCube空间范围内的所有三维空间点;
S506,如果ptlist中点的个数小于8则转到S507,否则转到S508;
S507,将FirstCube从CubeList中删除,转到S510;
S508,找到ptlist中距离FirstCube中心点位置的坐标cp最近的点,并将该点从PointDataSet中删除;
S509,FirstCube的同质连权值priority=FirstCube的同质连权值priority+circle;
S510,currentN=计算PointDataSet当前包含三维空间点的数量;
S511,如果(n-currentN)/n小于percent则转到S503,否则转到S512;
S512,将PointDataSet作为简化结果输出。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于长春工程学院,未经长春工程学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810729237.1/1.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置





