可PCLVisualizer视化类是PCL中功能最全的可视化类,与CloudViewer可视化类相比,PCLVisualizer 更为复杂,具有更全面的功能,如显示法线、点云着色、绘制多种形状和开辟多个视口。
点云素材:bunny.txt
1、按照点云坐标x、y、z坐标值中字段给点云进行赋值渲染
void visualization(pcl::PointCloud<pcl::PointXYZ>::Ptr cloud) {
pcl::visualization::PCLVisualizer viewer("cloud");
viewer.setBackgroundColor(0, 0, 0); // 设置背景色,RGB,0~1
pcl::visualization::PointCloudColorHandlerGenericField<pcl::PointXYZ> fildColor(cloud, "x"); // 按照x字段进行渲染
viewer.addPointCloud<pcl::PointXYZ>(cloud, fildColor, "sample"); // 显示点云,其中fildColor为颜色显示
viewer.setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 2, "sample"); // 设置点云大小
while (!viewer.wasStopped()) {
viewer.spinOnce();
}
}
// // event loop
/ Each call to spinOnce gives the viewer time to process events, allowing it to be interactive.
// while (!viewer->wasStopped()) {
// viewer->spinOnce(100);
// boost::this_thread::sleep(boost::posix_time::microseconds (100000));
// }
2、给点云单独赋予某一颜色
void visualization(pcl::PointCloud<pcl::PointXYZ>::Ptr cloud) {
pcl::visualization::PCLVisualizer viewer("cloud");
viewer.setBackgroundColor(0, 0, 0);
pcl::visualization::PointCloudColorHandlerCustom<pcl