最近的综合课程设计需要用到CloudCompare这款软件处理点云数据,最开始我发现Debian的apt软件库就包含它,安装后却发现打不开.pcd
格式的数据,于是需要从源码编译附带PCL插件的CloudCompare;另一方面我也想尽可能地多装点插件。操作过程中主要参考的是源码自带的BUILD说明。
一、安装PCL库
如果需要使用CloudCompare打开.pcd
格式的点云数据,需要安装PCL插件,而该插件依赖系统提前安装PCL点云数据处理库。Debian系Linux相对方便一些,可以直接用apt下载PCL库:
sudo apt install libpcl-dev
二、编译安装PDAL
Debian的PDAL插件需要系统提前安装PDAL,理论上也可以直接从apt软件库安装PDAL,但是在后来编译CloudCompare的过程中总是报错找不到pdalconfig.cmake
,所以我后来还是选择了从源码编译PDAL。官网的参考教程非常详细。
git clone https://github.com/PDAL/PDAL.git ~/Downloads/
cd PDAL-2.4.3-src
mkdir build && cd build
cmake-gui # 打开cmake图形界面
source选择PDAL的源码文件夹(我这里是PDAL-2.4.3-src),build目录是刚刚新建的build的目录,然后就可以点击configure并且选择Unix Makefile
(注:pdal作者推荐使用更快速的Ninja,但是我用Ninja出了点问题,所以就用Linux下cmake的默认配置,没发现区别),依次点击configure、generate之后cmake控制台窗口会输出一系列进程提示,成功的标志是结尾有如下两行提示:
Configuring done
Generating done
如果不进行变动的话大概率不会出其它问题,接着就可以make
了:
make -j8
# 耐心等待构建到100%
sudo make install
# cmake 默认安装到 /usr/local,install之后build文件夹下会有一份install-manifest文件说明安装位置以方便卸载
OK!PDAL就编译完成了!
三、安装GDAL和libGeotiff
Debian最近在打造DebianGIS项目,目的是使Debian成为GIS友好的Linux发行版,目前GDAL和libGeotiff都是可以从软件仓库下载的。我之前安装过QGIS,所以这两样都已经安装了。
sudo apt install "gdal*"
sudo apt install "libgeotiff*"
四、编译安装CloudCompare并附带尽可能多的插件
编译CloudCompare的过程尽量参考Github上CloudCompare仓库的BUILD.md
文件,也非常细致。
1. 安装依赖
sudo apt install libqt5svg5-dev libqt5opengl5-dev qt5-default qttools5-dev qttools5-dev-tools libqt5websockets5-dev
2. 下载源码
git clone --recursive https://github.com/cloudcompare/CloudCompare.git ~/Downloads/
3. cmake配置
经过了多次尝试,我将自己目前能装的CloudCompare插件都装上去了,cmake的配置命令如下:
cmake \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D PDAL_DIR=/usr/local/lib/cmkae/PDAL \
-D PDAL_CONFIG=/usr/local/bin/pdal-config \
-D OPTION_USE_GDAL=ON \
-D GDAL_INCLUDE_DIR=/usr/include/gdal \
-D GDAL_CONFIG=/usr/bin/gdal-config \
-D GDAL_LIBRARY=/usr/lib/libgdal.so \
-D PLUGIN_GL_QEDL=ON \
-D PLUGIN_GL_QSSAO=ON \
-D PLUGIN_IO_QADDITIONAL=ON \
-D PLUGIN_IO_QCSV_MATRIX=ON \
-D PLUGIN_IO_QDRACO=OFF \
-D PLUGIN_IO_QPDAL=ON \
-D PLUGIN_IO_QPHOTOSCAN=ON \
-D PLUGIN_IO_QRDB=OFF \
-D PLUGIN_IO_QSTEP=OFF \
-D PLUGIN_STANDARD_QANIMATION=ON \
-D QANIMATION_WITH_FFMPEG_SUPPORT=ON \
-D PLUGIN_STANDARD_QBROOM=ON \
-D PLUGIN_STANDARD_QCANUPO=ON \
-D PLUGIN_STANDARD_QCOLORIMETRIC_SEGMENTER=ON \
-D PLUGIN_STANDARD_QCOMPASS=ON \
-D PLUGIN_STANDARD_QCSF=ON \
-D PLUGIN_STANDARD_QFACETS=ON \
-D PLUGIN_STANDARD_QHPR=ON \
-D PLUGIN_STANDARD_QJSONRPC=ON \
-D PLUGIN_STANDARD_QM3C2=ON \
-D PLUGIN_STANDARD_QMPLANE=ON \
-D PLUGIN_STANDARD_QPCL=ON \
-D PLUGIN_STANDARD_QPCV=ON \
-D PLUGIN_STANDARD_QPOISSON_RECON=ON \
-D PLUGIN_STANDARD_QRANSAC_SD=ON \
-D PLUGIN_STANDARD_QSRA=ON \
-D PLUGIN_STANDARD_MASONRY_QAUTO_SEG=ON \
-D PLUGIN_STANDARD_MASONRY_QMANUAL_SEG=ON ..
4. 构建与安装
cmake --build . -j8
# build需要等待一会
sudo cmake --install .
5. 创建桌面图标
桌面图标位置可能不同,仅供参考哈。
5.1. 添加图标
将如下两张图片移动到/usr/share/icons/hicolor/256x256/apps/
,命名为CloudCompare.png
和ccViewer.png
。
然后刷新桌面图标缓存
sudo gtk-update-icon-cache /usr/share/icons/hicolor
5.2. 添加桌面文件
cd /usr/share/applications/
sudo vim cloudcompare.desktop
# 输入以下内容
[Desktop Entry]
Type=Application
Name=CloudCompare
Comment=3D point cloud and mesh processing software
Exec=CloudCompare
Terminal=false
Categories=Graphics;3DGraphics;Viewer;
Icon=cloudcompare.png
Keywords=3d;processing;
# Esc, 然后:wq保存退出
sudo vim ccViewer.desktop
# 输入以下内容
[Desktop Entry]
Type=Application
Name=CloudCompare Viewer
Comment=3D point cloud and mesh processing software
Exec=ccViewer
Terminal=false
Categories=Graphics;3DGraphics;Viewer;
Icon=ccViewer.png
Keywords=3d;viewer;
# Esc, 然后:wq保存退出, 注销后就可以看见图标了
五、遇到的问题与参考材料
1. 找不到qt5-default
影响不是特别大,参考这篇博客。
2. 编译好的CloudCompare仍然打不开LAS文件或者LAZ文件
在CloudCompare启动过程中会有提示,假如仍然打不开las文件,可能是PDAL插件出问题了,会在CloudCompare的控制台输出日志
libQPDAL_IO_PLUGIN don't seem to be a valid plugin (can not load shred library lidpdal_base.so.14)
这个是因为CloudCompare在之前编译时没有找到pdal链接库的位置,如在cmake配置时按照说明加入-D PDAL_DIR=/usr/local/lib/cmkae/PDAL -D PDAL_CONFIG=/usr/local/bin/pdal-config
好像可以解决该问题,但是我不确定这是否是主要原因。也有一些资料说需要将/usr/local/lib
添加到系统路径。
3. 参考资料汇总
- (https://github.com/CloudCompare/CloudCompare/blob/master/BUILD.md)
- (https://pdal.io/en/stable/development/compilation/unix.html)
- (https://github.com/CloudCompare/CloudCompare/issues/1382)
- 路过图床提供在线图片支持