0 引言
本文主要记录在Ubuntu
系统的PCL
点云库安装过程,以及PCL
点云读取和可视化的c++
代码示例。
1 PCL安装
本文是安装了pcl1.8
大版本,可先下载 下载pcl 1.8.1 版本(点击Source code(zip)
先安装pcl1.8.1
所需的依赖库:
sudo apt-get update
sudo apt-get install git build-essential linux-libc-dev
sudo apt-get install cmake cmake-gui
sudo apt-get install libusb-1.0-0-dev libusb-dev libudev-dev
sudo apt-get install mpi-default-dev openmpi-bin openmpi-common
sudo apt-get install libflann1.9 libflann-dev
sudo apt-get install libeigen3-dev
sudo apt-get install libboost-all-dev
sudo apt-get install libvtk7.1-qt libvtk7.1
sudo apt-get install libqhull* libgtest-dev
sudo apt-get install freeglut3-dev pkg-config
sudo apt-get install libxmu-dev libxi-dev
sudo apt-get install mono-complete
sudo apt-get install openjdk-8-jdk openjdk-8-jre
然后解压下载的pcl1.8.1
源码,并进入到pcl1.8.1
文件夹中:
mkdir build
cd build
cmake ..
make -j4
sudo make install
测试pcl
是否安装成功的话,可用pcl_viewer xxx.pcd
:
如果没有pcd
文件,可去点云库PCL(Point Cloud Library)的学习资源汇总下载rabbit.pcd
pcl_viewer rabbit.pcd
2 点云读取及可视化
安装PCL
库之后,就像OpenCV
读取lena
图像一样,PCL
入门先编写读取兔子点云的代码,如下是主要的点云读取和可视化代码,及对应的CMakeLists.txt
文件。
main.cpp
文件:
#include <iostream>
#include <pcl/io/io.h>
#include <pcl/io/pcd_io.h>
#include <pcl/visualization/cloud_viewer.h>
int main(int argc, char **argv) {
// 创建PointCloud的智能指针
pcl::PointCloud<pcl::PointXYZRGBA>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZRGBA>);
// 加载pcd文件到cloud
pcl::io::loadPCDFile("./data/rabbit.pcd", *cloud);
pcl::visualization::CloudViewer viewer("Cloud Viewer");
viewer.showCloud(cloud);
// 循环判断是否退出
while (!viewer.wasStopped()) {
// 后续也可以在这里对点云做很多处理
}
return 0;
}
CMakeLists.txt
文件:
cmake_minimum_required(VERSION 2,8)
project(PCLDemo)
set(CMAKE_CXX_STANDARD 11)
find_package(PCL REQUIRED)
# 包含头文件目录
include_directories(${PCL_INCLUDE_DIRS})
# 设置依赖库链接目录
link_directories(${PCL_LIBRARY_DIRS})
# 添加预处理器和编译器标记
add_definitions(${PCL_DEFINITIONS})
add_executable(PCLDemo main.cpp)
target_link_libraries(PCLDemo ${PCL_LIBRARIES})
Reference:
- 点云库PCL(Point Cloud Library)的学习资源汇总
- https://pcl.readthedocs.io/projects/tutorials/en/latest/index.html
⭐️👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍🌔