[发明专利]一种面向树木的三维点云数据的简化方法有效
申请号: | 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,异质化计数器ycounter=0,迭代计数器counter=1;S407,testCube=取出neighborlist中第counter个Cube;S408,diff=ABS(currentCube的隶属类目category‑testCube的隶属类目category);其中ABS表示计算绝对值;S409,如果diff大于2则ycounter=ycounter+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作为简化结果输出。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于长春工程学院,未经长春工程学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201810729237.1/,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置