PCL入门1之点云读取及可视化

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 
#include 
#include 
#include 

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



须知少时凌云志,曾许人间第一流。



⭐️

你可能感兴趣的:(#,PCL,1024程序员节,PCL入门,点云,点云读取,点云可视化,c++)