PCL安装及Demo示例
1. PCL介绍
PCL(The Point of Library) 是一个用于2D/3D图像和点云处理的大型的开源项目。PCL框架由许多先进算法构成,包括滤波、特征估计、表面重构、配准、模型拼合和分割等。这些算法有许多应用,例如,过滤噪声数据中的异常值,拼合多组3D点云,分割场景中的相关部分,提取关键点并计算几何外形的描述子用于识别物体,利用点云创建并可视化物体表面,等等。PCL目前已成功编译并配置在Linux, MacOS, Windows, 和Android/iOS等平台上。
2. 安装
2.1 Ubuntu
unix系统下可以直接通过apt,yum等包安装命令进去安装。以ubuntu举例来说:
执行:
apt-get install libpcl-dev pcl-tools 即可安装成功
2.2 Mac
mac系统下可以直接通过brew来安装. 通过以下命令我们就可以安装成功
brew install pcl
3.开发Demo 示例
打开命令行窗口,创建一个项目目录。如下
cd /home/admin
mkdir pcl-demo
cd pcl-demo
在项目目录下创建CMakeLists.txt,以及项目文件
touch CMakeLists.txt
mkdir build
touch application.cpp
vim CMakeLists.txt
在CMakeLists.txt里面填写如下内容.
cmake_minimum_required(VERSION 2.6)
project(pcl_demo)
find_package(PCL REQUIRED)
include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})
add_executable(pcl_demo application.cpp)
target_link_libraries (pcl_demo ${PCL_LIBRARIES})
通过CMakeList.txt将项目编译结构列举出来.其关键通过 find_package去找到系统中所安装的PCL,找到后,会自动注入PCL_INCLUDE_DIRS,PCL_LIBRARY_DIRS,PCL_DEFINITIONS,PCL_LIBRARIES变量,只想将相关的变量引入链接,即可将项目搭建成功。
在项目搭建后,编写application.cpp文件,
#include <iostream>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
#include <pcl/visualization/cloud_viewer.h>
#include <thread>
using namespace std::chrono_literals;
int main (int argc, char** argv)
{
pcl::PointCloud<pcl::PointXYZRGBA>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZRGBA>);
pcl::io::loadPCDFile("./../test_pcl_logo.pcd",*cloud);
pcl::visualization::PCLVisualizer visualizer("view");
visualizer.addPointCloud(cloud);
while (!visualizer.wasStopped()){
visualizer.spinOnce(100);
std::this_thread::sleep_for(100ms);
}
cloud.reset();
return 0;
}
首先我们先建立一个pcl点云对象,通过PCL加载文件函数,将点云对象填充。在通过PCLVisualizer建立起可视化对象,即可将相关内容展示出来。通过下述命令进行编译运行
cd build
cmake ..
make
./plc_demo