注意填写导入点云文件位置时,找到目标文件夹,复制路径,需要更改一下
如"E:\1PCD点云文件\rabbit.pcd"
更改为?"E://PCD点云文件//rabbit.pcd"? 注意斜杠? 否则会报错
显示数据
//显示数据
/*
#include<iostream>
#include<pcl/io/pcd_io.h>
#include<pcl/point_types.h>
int main(int argc, char** argv) {
//创建了一个名为cloud的指针,储存XYZ类型的点云数据
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
//*打开点云文件
if (pcl::io::loadPCDFile<pcl::PointXYZ>("E://PCD点云文件//rabbit.pcd", *cloud) == -1) {
PCL_ERROR("Couldn't read file rabbit.pcd\n");
return(-1);
}
std::cout << "Loaded:" << cloud->width*cloud->height << "data points from test_pcd.pcd with the following fields:" << std::endl;
for (size_t i = 0; i < cloud->points.size(); ++i) {
std::cout << " " << cloud->points[i].x << " " << cloud->points[i].y << " " << cloud->points[i].z << " " << std::endl;
}
system("pause");
return 0;
}
*/
显示点云数据量
数据可视化
//数据可视化
#include<iostream>
#include<pcl/io/pcd_io.h>
#include<pcl/point_types.h>
#include <pcl/visualization/cloud_viewer.h>
void viewerOneOff(pcl::visualization::PCLVisualizer& viewer) //设置背景颜色
{
}
int main(int argc, char** argv)
{
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
//
//*打开点云文件
//if (pcl::io::loadPCDFile<pcl::PointXYZ>("E://1PCD点云文件//rabbit.pcd", *cloud) == -1)
if (pcl::io::loadPCDFile<pcl::PointXYZ>("E://1PCD点云文件//rabbit.pcd", *cloud) == -1)
//根据自己pcd文件的路径进行添加
{
PCL_ERROR("Couldn't read file rabbit.pcd\n");
return(-1);
}
std::cout << cloud->points.size() << std::endl; //points.size() 表示数据的大小也就是说点云文件中多少个点
pcl::visualization::CloudViewer viewer("cloud viewer"); //showCloud 函数是同步的,在此处等待直到渲染显示为止
viewer.showCloud(cloud); //该注册函数在可视化时只调用一次
viewer.runOnVisualizationThreadOnce(viewerOneOff); //该注册函数在渲染输出是每次都调用
while (!viewer.wasStopped())
{
}
system("pause");
return 0;
}
显示如下
?
测试文件兔子点云文件
链接: https://pan.baidu.com/s/1f1PQkfnS02cFYw7daqn-Hg 提取码: t6eq 复制这段内容后打开百度网盘手机App,操作更方便哦
|