Potree安装踩坑记录

编程入门 行业动态 更新时间:2024-10-09 12:29:35

<a href=https://www.elefans.com/category/jswz/34/1749326.html style=Potree安装踩坑记录"/>

Potree安装踩坑记录

最近在研究点云渲染 想自己在本地搭建环境跑起来玩玩,不料坑真是多。花了我三天时间折腾,快要放弃的时候,终于搞好了。中间真是走了不少弯路,先是在mac上跑没成功,觉得是因为环境问题,又去折腾虚拟机,用别人构建好的docker也没成功。编译总是出各种错,改c++源代码,功夫不负有心人,终于搞好了。

鉴于有很多小伙伴在搭建环境时,总是遇到各种各样的问题 ,我觉得很浪费时间。 为此我制作了一个docker镜像,免去搭建环境的烦恼。

确保本地装有docker环境

docker pull zt123123/potree-convert-ubuntu:latest

运行容器后,可直接执行PotreeConverter命令

此命令已经软连接到全局环境了

如果你不想踩坑,直接用镜像就好了,可以不用往下看了.......

 

 

---------------- 正文开始----------------

//Potree 介绍

//开源初探

//依赖的三方库

.html

 

//PotreeConverter 安装过程

 

linux / gcc 4.9

//安装lastools

lastools (from fork with cmake)

 

cd ~/dev/workspaces/lastools

git clone .git master

cd master/LASzip

mkdir build

cd build

 

//安装没有cmake要安装cmake

cmake -DCMAKE_BUILD_TYPE=Release ..//配置cmake

make

 

 

//安装PotreeConverter

PotreeConverter

 

cd ~/dev/workspaces/PotreeConverter

git clone .git master

cd master (这里有个坑,默认分支是develop, 记得切换成master,否则后续cmake 会提示没有cmake.list清单文件。我猜想这里可能是在开发当中,还没来得及加上。后续如果有的话,就不用切换分支了)

mkdir build

cd build

cmake -DCMAKE_BUILD_TYPE=Release -DLASZIP_INCLUDE_DIRS=~/dev/workspaces/lastools/master/LASzip/dll -DLASZIP_LIBRARY=~/dev/workspaces/lastools/master/LASzip/build/src/liblaszip.so ..

make

 

//这个步骤有几个坑:

//1.如果你是Mac OS 的电脑,你的电脑在编译lastools的时候,生成的文件叫liblaszip.dylib,而不是liblaszip.so,要不然会提示文件不存在

 

//2.cmake完成之后,进行到最后一步make的时候,会报一个致命错误

//    fatal error: 'experimental/filesystem' file not found #260

 

//3. 路径要写成绝对路径(巨坑!!!)

~/dev/workspaces 替换成相应的 /Users/xxx/dev/workspaces

 

//google一把,最后发现在github的issues里面人家早就发现这个问题了,人家早就列出了这个问题,也是醉了

//问题出在如果我们cmake的时候不指定gcc的路径,那么,cmake默认使用将是苹果公司的gcc版本,里面会缺少这个库

//解决的办法

 

cmake -DCMAKE_C_COMPILER=/usr/local/Cellar/gcc/8.1.0/bin/gcc-8 -DCMAKE_CXX_COMPILER=/usr/local/Cellar/gcc/8.1.0/bin/g++-8 -DCMAKE_BUILD_TYPE=Release -DLASZIP_INCLUDE_DIRS=/Users/hejinlong/Desktop/LAStools/master/LASzip/dll -DLASZIP_LIBRARY=/Users/hejinlong/Desktop/LAStools/master/LASzip/build/src/liblaszip.dylib ..

 

//根据自己的gcc版本而定

 

4. 编译的时候可能还会遇到一个错误  ‘Potree::Point&’ from an rvalue of type ‘Potree::Point’ writer->write(reader->getPoint()); 

原谅我太菜 c++不是很熟, 不然这个问题一眼就能看出来 再次goole得以解决

详情见  

解决办法如下

Potree::Point point = reader->getPoint();

writer->write(point);

 

上述办法我没试验成功,我用了另一种方式

我报的错并不是这个,而是filesystem缺失 反而有 experimental/filesystem

fatal error: 'filesystem' file not found 

我直接魔改源代码 直接改成了 #include<experimental/filesystem>

记得同时改掉命名空间

namespace fs = std::experimental::filesystem;

 

//编译成功之后

./PotreeConverter -h //查看相关的参数

 

//此处还有一个隐藏坑

//我们明明编译好了PotreeConverter工具,但是会报这样的一个错,原因是我们的终端字符集编码的问题

//  what(): locale::facet::_S_create_c_locale name not valid

//解决的办法:

export LC_ALL="zh_CN.GBK"  

 

//实例:把las文件导出成为n个100kb大小的las文件

./PotreeConverter /Users/hejinlong/Desktop/las/a.las -o /Users/hejinlong/Desktop/las/change -p leida --output-format LAS

 

分割好las之后就可以导入potree项目使用

更多推荐

Potree安装踩坑记录

本文发布于:2024-02-06 13:30:54,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1749467.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Potree

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!