基于pcl库将点云cloud内的idx1索引表示的数据加入到指针by_slicing_cloud内的c++代码
下面是基于PCL库将点云cloud内的idx1索引表示的数据加入到指针by_slicing_cloud内的C++代码示例:
#include <pcl/point_types.h>
#include <pcl/io/pcd_io.h>
int main()
{
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
pcl::PointCloud<pcl::PointXYZ>::Ptr by_slicing_cloud(new pcl::PointCloud<pcl::PointXYZ>);
std::vector<int> idx1; // 索引数据
// 从文件加载点云数据
pcl::io::loadPCDFile<pcl::PointXYZ>("input_cloud.pcd", *cloud);
// 将idx1索引表示的点云数据加入到by_slicing_cloud
by_slicing_cloud->width = idx1.size();
by_slicing_cloud->height = 1;
by_slicing_cloud->is_dense = false;
by_slicing_cloud->points.resize(by_slicing_cloud->width * by_slicing_cloud->height);
for (size_t i = 0; i < idx1.size(); ++i) {
by_slicing_cloud->points[i].x = cloud->points[idx1[i]].x;
by_slicing_cloud->points[i].y = cloud->points[idx1[i]].y;
by_slicing_cloud->points[i].z = cloud->points[idx1[i]].z;
}
// 保存结果点云
pcl::io::savePCDFileASCII("output_cloud.pcd", *by_slicing_cloud);
return 0;
}
请确保已经安装了PCL库,并在代码中正确引入相关的头文件。将输入点云数据文件名修改为实际的文件路径,并将输出点云数据文件名修改为想要保存的文件路径
原文地址: https://www.cveoy.top/t/topic/h4nl 著作权归作者所有。请勿转载和采集!