看了很多网上的教程,好多都是安装各种依赖,但是Ubuntu18.04和20.04安装pcl点云库非常方便,只需要一行代码就可以搞定。
sudo apt install libpcl-dev
然后又你可以下载一个数据集测试一下,当然我安装的时候使用cpp程序进行测试的。
#include <pcl/visualization/cloud_viewer.h>
#include <iostream>
#include <pcl/io/io.h>
#include <pcl/io/pcd_io.h>
int user_data;
void viewerOneOff(pcl::visualization::PCLVisualizer& viewer)
{
//画球
viewer.setBackgroundColor(1.0, 0.5, 1.0);
pcl::PointXYZ o;
o.x = 1.0;
o.y = 0;
o.z = 0;
viewer.addSphere(o, 0.25, "sphere", 0);
std::cout << "i only run once" << std::endl;
}
void viewerPsycho(pcl::visualization::PCLVisualizer& viewer)
{
//计数
static unsigned count = 0;
std::stringstream ss;
ss << "Once per viewer loop: " << count++;
viewer.removeShape("text", 0);
viewer.addText(ss.str(), 300, 300, "text", 0);
//FIXME: possible race condition here:
user_data++;
}
int main()
{
//创建并读取点云
pcl::PointCloud<pcl::PointXYZRGBA>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZRGBA>);
pcl::io::loadPCDFile("bunny.pcd", *cloud);
pcl::visualization::CloudViewer viewer("Cloud Viewer");
//渲染点云
viewer.showCloud(cloud);
//只会调用一次
viewer.runOnVisualizationThreadOnce(viewerOneOff);
//多次调用
viewer.runOnVisualizationThread(viewerPsycho);
while (!viewer.wasStopped())
{
//检查线程结束没有
user_data++;
}
return 0;
}
CmakeLists文件如下:
cmake_minimum_required(VERSION 2.6 FATAL_ERROR)
project(pcl_test)
find_package(PCL 1.7 REQUIRED)
include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})
add_executable(pcl_test pcl_test.cpp)
target_link_libraries(pcl_test ${PCL_LIBRARIES})
然后进行编译,进入到测试的文件下面,我的是pcl_test,打开终端
mkdir build
cd build
cmake ..
make -j4
测试用的点云文件是斯坦福大学的兔子,格式是pcd,大家自己去下载吧
记得要把文件放在build文件夹里面,不然会有报错!!!
然后:
ls
如果你编译成功了,会有pcl_test执行文件,如果没有,说明你没有编译成功!
编译成功后,就可以执行了:
./pcl_test
最后的执行效果如下图所示:
如果看到了这里,说明你编译成功了!!