基于MicroStation CE的点云软件二次开发

基于MS进行点云的二次开发已经有一段时日,对已经实现的功能作一个回顾:

基于MicroStation CE的点云软件二次开发

 1.首先是点云的导入功能,MS CE目前只支持pod格式点云文件,加载速度很快,因为其并没有全部读入点云数据,目前的理解是仅仅读入了点云的头文件,有很好的显示效果,但无法获取实际点云坐标;

解决办法是使用pdal库读入las文件,las再转成pod,当需要处理点云时,根据点云元素ID后台读取las,仅仅测图时则不使用las以保证流畅的点云显示效果:

基于MicroStation CE的点云软件二次开发

2.点云导入后需要对其进行管理,因此搭建了一个点云管理列表,记录每个点云的名称、数量、ID、最大最小值。

同时实现选中高亮显示、删除功能,在删除选中某行时,对应的点云也删除。

3.实现基本的测图功能:

基于MicroStation CE的点云软件二次开发

基于MicroStation CE的点云软件二次开发

包括上述简单绘图功能,鼠标选点,构建线串,动态显示,是否闭合等;

更新视图是对视图内所有的点云元素进行遍历,并显示到点云管理列表中。

4.真正的点云处理功能:

基于MicroStation CE的点云软件二次开发

此处也很艰难,PCL和MS SDK无法兼容,我选择了调用外部exe的方法,将待处理点云以及一些参数传到由PCL写好的exe中进行处理。

目前实现的功能都很简单,基础的PCL都能轻松解决,主要是移植到MS中有很多问题。

其中裁剪盒的构建花费了较长时间,最后通过构建线串的方法实现了动态的裁剪盒拉伸,效果如下:

基于MicroStation CE的点云软件二次开发

 

基于MicroStation CE的点云软件二次开发

任重道远,C++基础太差了,每一步都很难,坚持不下去就听听野草。

我顺着剥落的高墙走路
风吹来四面是灰土 四方有雾
我感到绝望 我感到枯竭
我这一路上再也没有遇到青年…