点云数据可视化(potree、Cesium)

(最近在研究点云数据可视化的技术路线,中间经历了无尽的痛苦与挣扎,主要是国内这方面的资料太少了!现将近期的学习成果记录如下,期望帮大家避坑!

 

点云数据可视化我主要调研了两个方面的技术方案,一个是用potree加载,一个是用Cesium加载,下面分别介绍。

 1.potree

介绍:Potree 是基于 WebGL 的开源大规模点云渲染器,其由维也纳工业大学计算机图形与算法研究中心开发。

官网链接http://www.potree.org/

数据切片软件Releases · potree/PotreeConverter · GitHub

安装教程2022-02-23 potree详细步骤 - 简书 /PotreeConvert官网

数据切片命令:PotreeConverter.exe point.las -o outputfile

鼠标操作:左键旋转,右键平移

优点:官网上提供了大量的示例,可以查看其源码、运行后的效果并且可以通过交互改变可视化的效果;数据处理的过程也十分简单,下载PotreeConverter输入命令切片后结果就可以直接使用。

2.Cesium 

介绍:Cesium 是一个跨平台、跨浏览器的展示三维地球和地图的 javascript 库,它使用WebGL 来进行硬件加速图形,使用时不需要任何插件支持,但是浏览器必须支持WebGL。

官网链接Cesium: The Platform for 3D Geospatial

数据切片软件:CesiumLab/python代码

鼠标操作:左键平移,右键缩放

优点:引入文件相对较少,可以在加载点云数据后,加载地理数据并且进行一些相应的操作。

3.点云数据转换

 las格式与laz格式相互转换CloudCompare——laz与las格式点云相互转换及代码实现_点云侠的博客-CSDN博客

4.点云数据切片 

4.1 Cesium点云切片工具

1.CesiumLab

 

2.potree23dtiles-master

(心是使用PotreeConverter进行点云数据切片,再用python代码读取生成的bin文件和json文件,生成Cesium支持的pnts文件及json)
GitHub - yeyan00/potree23dtiles: potree pointcloud to cesium 3dtiles

 

3.Py3dtiles

py3dtiles是一个CLI工具和一个用Python编写的库,用于创建和操作3DTiles

但这个插件输出坐标系好像默认是4978,不知道可不可以修改输出坐标系,没有深入研究

 

4.2 potree点云切片工具

1.potree官方提供的工具PotreeConverter

5.点云数据坐标系转换

5.1 arcgis(yyds)

可以利用提取Las数据为点云数据添加坐标系,但如果点云数据之前有经纬度坐标系,是不能通过arcgis清除该坐标系的,只能添加不能清除

 

5.2 PCL

之前查阅资料说PCL(Point Cloud Library)也可以实现点云数据坐标系的转换,这个我没试过,大家可以自行尝试

 

6.点云数据查看软件 

6.1 arcgis/arcscene

arcgis查看的是二维,可以通过查看属性获得点云数据的范围或者查看点云数据的坐标

arcscene查看的是三维立体点云,但不能查看到点云的位置信息等

 

6.2 cloudCompare

cloudCompare中可以查看点云,但在这个软件中查看的点云是不带经纬度信息的!!!例如,现在我有一个公园的点云数据,这个点云数据是4326的经纬度投影,那么它的xy值最大值-最小值变化范围很小,z值高程值单位是米,范围变化很大,在arcscene中就可以正确查看到公园点云数据,但在cloudCompare中由于其计算xy变化很小,所以可视化的结果是一条在z轴变化范围比较大的线段。

在cloudCompare中也可以对点云数据进行scale缩放或者裁切等等,但注意处理过的数据导出会丢掉投影信息!!!

7.点云数据瓦片属性信息查看 

b3dm瓦片查看 | cesium中文网

如果你想查看切片的经纬度颜色等信息,也可以在控制台自己打断点

8.点云数据切片过程中踩过的坑记录 

之前在点云数据切片过程中就遇到了上面我举的公园的例子,点云数据拥有经纬度坐标系(换句话说就是极坐标系,xy值是度,z值是米),所以在切片前计算点云盒子boundingBox的时候x、y的范围变化较小,所以导致scale在x、y范围特别小,导致切片数据最后可视化结果是一条线段。那该怎么办呢?我想到的就是给点云数据添加投影坐标系,这样xyz值都转换为米。在这里我是用arcgis的提取Las数据为点云数据添加投影坐标系。这样再对点云数据进行切片,其计算盒子范围就是使用的是投影坐标系的值了。

目前先记录这么多吧,以后如果有需要会再记录~ 希望上述能帮助到大家少踩雷~

 

 

 

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值