下面是一个基于PCL库将容器std::vector<pcl::PointCloudpcl::PointXYZRGB::Ptr> yezi内每个指针用不同颜色可视化在一个窗口的C++代码示例:

#include <iostream>
#include <pcl/io/pcd_io.h>
#include <pcl/visualization/pcl_visualizer.h>

int main()
{
    std::vector<pcl::PointCloud<pcl::PointXYZRGB>::Ptr> yezi;

    // 假设yezi中有三个PointCloud指针
    pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloud1(new pcl::PointCloud<pcl::PointXYZRGB>);
    pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloud2(new pcl::PointCloud<pcl::PointXYZRGB>);
    pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloud3(new pcl::PointCloud<pcl::PointXYZRGB>);

    // 将PointCloud添加到yezi容器中
    yezi.push_back(cloud1);
    yezi.push_back(cloud2);
    yezi.push_back(cloud3);

    // 为每个PointCloud设置不同的颜色
    cloud1->points.resize(100);
    cloud2->points.resize(200);
    cloud3->points.resize(300);

    for (auto& point : cloud1->points)
    {
        point.r = 255;
        point.g = 0;
        point.b = 0;
    }

    for (auto& point : cloud2->points)
    {
        point.r = 0;
        point.g = 255;
        point.b = 0;
    }

    for (auto& point : cloud3->points)
    {
        point.r = 0;
        point.g = 0;
        point.b = 255;
    }

    // 可视化窗口
    pcl::visualization::PCLVisualizer::Ptr viewer(new pcl::visualization::PCLVisualizer("PointCloud Viewer"));

    // 设置背景颜色
    viewer->setBackgroundColor(0, 0, 0);

    // 添加PointCloud到可视化器中
    int cloud_index = 0;
    for (auto& cloud : yezi)
    {
        std::string cloud_id = "cloud" + std::to_string(cloud_index);
        pcl::visualization::PointCloudColorHandlerRGBField<pcl::PointXYZRGB> color_handler(cloud);
        viewer->addPointCloud<pcl::PointXYZRGB>(cloud, color_handler, cloud_id);
        viewer->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 1, cloud_id);
        cloud_index++;
    }

    // 显示可视化窗口
    while (!viewer->wasStopped())
    {
        viewer->spinOnce();
    }

    return 0;
}

这段代码首先创建了一个名为yezi的std::vector<pcl::PointCloudpcl::PointXYZRGB::Ptr>类型的容器。然后,假设yezi中有三个PointCloud指针,将它们添加到yezi容器中。接下来,为每个PointCloud设置不同的颜色。然后,创建一个PCLVisualizer对象作为可视化窗口,并设置背景颜色。最后,将每个PointCloud添加到可视化器中,并设置不同的ID和颜色处理器。最后,在while循环中显示可视化窗口,直到窗口被关闭

基于pcl库将容器stdvectorpclPointCloudpclPointXYZRGBPtr yezi内每个指针用不同颜色可视化在一个窗口的c++代码

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

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