在代码中,源点云没有显示出来是因为使用了pcl::visualization::PointCloudColorHandlerCustom来设置点云的颜色处理程序,但没有设置点云的渲染属性。

要修改代码以显示源点云,可以按照以下步骤进行:

  1. 在使用addPointCloud函数添加点云时,为点云添加渲染属性,例如设置点的大小和形状。
viewer.addPointCloud(cloud_in_downsampled, pcl::visualization::PointCloudColorHandlerCustom<pcl::PointXYZ>(cloud_in_downsampled, 255, 0, 0), "cloud_in");
viewer.setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 1, "cloud_in");
viewer.setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SHAPE, pcl::visualization::PCL_VISUALIZER_POINT_SPHERE, "cloud_in");
  1. 同样的方式为目标点云和对齐后的点云设置渲染属性。
viewer.addPointCloud(cloud_out_downsampled, pcl::visualization::PointCloudColorHandlerCustom<pcl::PointXYZ>(cloud_out_downsampled, 0, 255, 0), "cloud_out");
viewer.setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 1, "cloud_out");
viewer.setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SHAPE, pcl::visualization::PCL_VISUALIZER_POINT_SPHERE, "cloud_out");

viewer.addPointCloud<pcl::PointXYZ>(cloud_in_downsampled, pcl::visualization::PointCloudColorHandlerCustom<pcl::PointXYZ>(cloud_in_downsampled, 0, 0, 255), "cloud_aligned");
viewer.setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 1, "cloud_aligned");
viewer.setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SHAPE, pcl::visualization::PCL_VISUALIZER_POINT_SPHERE, "cloud_aligned");

通过设置点的大小和形状,可以更好地显示点云。您可以根据需要调整点的大小和形状

#include vtkAutoInithVTK_MODULE_INITvtkRenderingOpenGL;VTK_MODULE_INITvtkInteractionStyle;#define BOOST_TYPEOF_EMULATION#include iostream#include pcliopcd_ioh#include pclpoint_typesh#include pclregist

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

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