C++ PCL 库:使用不同颜色可视化 std::vector<pcl::PointCloud<pcl::PointXYZRGB>::Ptr> 容器中的点云数据
#include
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;
}
原文地址: https://www.cveoy.top/t/topic/pSXS 著作权归作者所有。请勿转载和采集!