基于pcl库将容器stdvectorpclPointCloudpclPointXYZRGBPtr yezi内未知个数的指针用不同颜色可视化在一个窗口的c++代码
下面是一个基于PCL库的C++代码,用于将std::vector<pcl::PointCloudpcl::PointXYZRGB::Ptr>中的未知个数的指针可视化为不同颜色的点云,并在一个窗口中显示。
#include <pcl/visualization/pcl_visualizer.h>
void visualizePointClouds(const std::vector<pcl::PointCloud<pcl::PointXYZRGB>::Ptr>& pointClouds) {
pcl::visualization::PCLVisualizer viewer("PointCloud Viewer");
// 遍历所有点云
for (size_t i = 0; i < pointClouds.size(); ++i) {
// 生成一个随机颜色
unsigned char r = rand() % 256;
unsigned char g = rand() % 256;
unsigned char b = rand() % 256;
// 设置点云的颜色
pcl::visualization::PointCloudColorHandlerCustom<pcl::PointXYZRGB> colorHandler(pointClouds[i], r, g, b);
// 将点云添加到可视化器中
viewer.addPointCloud<pcl::PointXYZRGB>(pointClouds[i], colorHandler, "cloud" + std::to_string(i));
}
// 显示点云
viewer.spin();
}
int main() {
std::vector<pcl::PointCloud<pcl::PointXYZRGB>::Ptr> pointClouds;
// 假设pointClouds中已经有了一些PointCloud指针
// 可视化点云
visualizePointClouds(pointClouds);
return 0;
}
在上面的代码中,我们首先定义了一个visualizePointClouds函数,该函数接受一个std::vector<pcl::PointCloud<pcl::PointXYZRGB>::Ptr>作为参数,并将其中的点云可视化为不同颜色的点云。
在visualizePointClouds函数中,我们使用pcl::visualization::PCLVisualizer类创建了一个可视化器对象viewer。然后,我们遍历输入的点云向量,并为每个点云生成一个随机颜色。我们使用pcl::visualization::PointCloudColorHandlerCustom类来设置每个点云的颜色,并使用viewer.addPointCloud方法将点云添加到可视化器中。最后,我们调用viewer.spin方法显示点云。
在main函数中,我们创建了一个空的std::vector<pcl::PointCloud<pcl::PointXYZRGB>::Ptr>,然后调用visualizePointClouds函数来可视化点云。您可以在pointClouds中添加任意数量的点云指针,并在可视化窗口中查看它们
原文地址: https://www.cveoy.top/t/topic/iadE 著作权归作者所有。请勿转载和采集!