使用PCL库将std::vector<pcl::PointIndices> 中的索引对应点云数据以不同颜色可视化
#include
int main() { // 创建PCL可视化对象 pcl::visualization::PCLVisualizer viewer("PointCloud Viewer"); viewer.setBackgroundColor(0.0, 0.0, 0.0);
// 创建一个颜色生成器,用于为每个索引生成不同的颜色
pcl::visualization::PointCloudColorHandlerCustom<pcl::PointXYZ> color_handler;
// 假设已经有一个存储索引的vector
std::vector<pcl::PointIndices> newIndicesVector;
// 遍历每个索引
for (int i = 0; i < newIndicesVector.size(); ++i)
{
// 从磁盘加载点云数据
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
pcl::io::loadPCDFile<pcl::PointXYZ>("path_to_pcd_file.pcd", *cloud);
// 设置颜色生成器的颜色为当前索引的颜色
color_handler.setR255(rand() % 256);
color_handler.setG255(rand() % 256);
color_handler.setB255(rand() % 256);
// 将点云数据添加到PCL可视化对象中,并使用颜色生成器显示颜色
viewer.addPointCloud<pcl::PointXYZ>(cloud, color_handler, std::to_string(i));
}
// 显示点云数据
while (!viewer.wasStopped())
{
viewer.spinOnce();
}
return 0;
}
原文地址: https://www.cveoy.top/t/topic/pSFg 著作权归作者所有。请勿转载和采集!