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

int main() { std::vector<pcl::PointCloudpcl::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;

}

C++ PCL 库:使用不同颜色可视化 std::vector<pcl::PointCloud<pcl::PointXYZRGB>::Ptr> 容器中的点云数据

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

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