环境配置
"args":[
"-g",
"${workspaceFolder}/${fileBasename}", // include path指令
"-I", "/usr/local/include/pcl-1.8",
"-I", "/usr/include/eigen3",
"-I", "/usr/include/vtk-5.10",
"-I", "/usr/include/qhull",
"-I", "/usr/include/flann",
"-I", "/usr/include/boost",
// lib 库文件地址
"-L", "/usr/local/lib",
"-l", "pcl_io",
"-l", "pcl_visualization",
"-l", "pcl_common",
"-l", "vtkFiltering",
"-l", "vtkCommon",
"-l", "vtkRendering",
"-l", "vtkGraphics",
"-L", "/usr/include/x86_64-linux-gnu",
"-l", "boost_system",
"-o", // 生成指定名称的可执行文件
"${workspaceFolder}/${fileBasenameNoExtension}.out"
],
PCL读取PCD并显示
#include <iostream>
#include <fstream>
#include <pcl/io/pcd_io.h> //文件输入输出
#include <pcl/point_types.h> //点类型相关定义
#include <pcl/visualization/cloud_viewer.h> //点类型相关定义
using namespace std;
int main()
{
//1.loadPCDFile读取点云
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud1(new pcl::PointCloud<pcl::PointXYZ>);
if (pcl::io::loadPCDFile<pcl::PointXYZ>("/home/cqy/Documents/ml_lidar/pcd/1619687386.000349.pcd", *cloud1) == -1)
{
PCL_ERROR("Cloudn't read file!");
return -1;
}
cout << "1.loadPCDFile方式使用指针读取点个数: " << cloud1->points.size() << endl;
cout<<cloud1->points[0].x<<endl;
//6.显示点云
pcl::visualization::CloudViewer viewer("cloud viewer");
viewer.showCloud(cloud1);
while (!viewer.wasStopped())
{
}
system("pause");
return 0;
}
访问某一点
int x = cloud->points[99].x;
//PointXYZ具体数据结构见《PCL学习笔记1-Point类型》