#include #include <pcl/io/ply_io.h> #include <pcl/point_types.h> #include <pcl/visualization/pcl_visualizer.h>

int main() { // 创建点云数据 pcl::PointCloudpcl::PointXYZRGB::Ptr cloud(new pcl::PointCloudpcl::PointXYZRGB); pcl::PointCloudpcl::PointXYZRGB::Ptr cloud2(new pcl::PointCloudpcl::PointXYZRGB);

cloud->width = 100;
cloud->height = 1;
cloud->points.resize(cloud->width * cloud->height);

cloud2->width = 100;
cloud2->height = 1;
cloud2->points.resize(cloud2->width * cloud2->height);

for (size_t i = 0; i < cloud->points.size(); ++i)
{
    cloud->points[i].x = static_cast<float>(1024 * rand() / (RAND_MAX + 1.0));
    cloud->points[i].y = static_cast<float>(1024 * rand() / (RAND_MAX + 1.0));
    cloud->points[i].z = static_cast<float>(1024 * rand() / (RAND_MAX + 1.0));
    cloud->points[i].r = 255;
    cloud->points[i].g = 0;
    cloud->points[i].b = 0;

    cloud2->points[i].x = static_cast<float>(1024 * rand() / (RAND_MAX + 1.0));
    cloud2->points[i].y = static_cast<float>(1024 * rand() / (RAND_MAX + 1.0));
    cloud2->points[i].z = static_cast<float>(1024 * rand() / (RAND_MAX + 1.0));
    cloud2->points[i].r = 0;
    cloud2->points[i].g = 255;
    cloud2->points[i].b = 0;
}

// 保存点云数据为PLY文件
pcl::PLYWriter writer;
writer.write("cloud1.ply", *cloud);
writer.write("cloud2.ply", *cloud2);

// 可视化点云数据
pcl::visualization::PCLVisualizer viewer("Cloud Viewer");
viewer.setBackgroundColor(0.0, 0.0, 0.0);
viewer.addPointCloud<pcl::PointXYZRGB>(cloud, "cloud1");
viewer.addPointCloud<pcl::PointXYZRGB>(cloud2, "cloud2");
viewer.setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_COLOR, 1.0, 0.0, 0.0, "cloud1");
viewer.setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_COLOR, 0.0, 1.0, 0.0, "cloud2");
viewer.spin();

return 0;

}


原文地址: http://www.cveoy.top/t/topic/pBTO 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录