基于pcl库写一段自动保存多个点云数据为ply文件并用不同的颜色可视化的c++代码
下面是一个基于pcl库的示例代码,可以自动保存多个点云数据为PLY文件并使用不同的颜色进行可视化:
#include <iostream>
#include <pcl/io/ply_io.h>
#include <pcl/point_types.h>
#include <pcl/visualization/pcl_visualizer.h>
int main()
{
// 创建一个点云数据
pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZRGB>());
cloud->width = 100;
cloud->height = 1;
cloud->points.resize(cloud->width * cloud->height);
// 设置每个点的坐标和颜色
for (size_t i = 0; i < cloud->points.size(); ++i)
{
cloud->points[i].x = static_cast<float>(rand()) / static_cast<float>(RAND_MAX);
cloud->points[i].y = static_cast<float>(rand()) / static_cast<float>(RAND_MAX);
cloud->points[i].z = static_cast<float>(rand()) / static_cast<float>(RAND_MAX);
cloud->points[i].r = static_cast<uint8_t>(rand());
cloud->points[i].g = static_cast<uint8_t>(rand());
cloud->points[i].b = static_cast<uint8_t>(rand());
}
// 保存点云数据为PLY文件
pcl::PLYWriter writer;
writer.write("point_cloud.ply", *cloud);
// 可视化点云数据
pcl::visualization::PCLVisualizer viewer("Point Cloud Viewer");
viewer.setBackgroundColor(0, 0, 0);
viewer.addPointCloud<pcl::PointXYZRGB>(cloud, "cloud");
viewer.setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 1, "cloud");
viewer.spin();
return 0;
}
在上面的代码中,首先使用pcl库创建一个点云数据,并设置每个点的坐标和颜色。然后使用pcl::PLYWriter类将点云数据保存为PLY文件。最后使用pcl::visualization::PCLVisualizer类可视化点云数据,并设置点云的渲染属性。运行代码后,将生成一个名为point_cloud.ply的PLY文件,并显示点云数据的可视化效果
原文地址: https://www.cveoy.top/t/topic/hSNv 著作权归作者所有。请勿转载和采集!