系列文章目录
一、cloud_viewer
最基本的点云显示:
#include <pcl/visualization/cloud_viewer.h>
pcl::visualization::CloudViewer viewer("PCD");
viewer.showCloud(cloud);
while (!viewer.wasStopped())
{
}
二、PCLVisualizer
相较于cloud_viewer, PCLVisualizer能够更加灵活的定义多种显示特性:
基本
#include <pcl/visualization/pcl_visualizer.h>
boost::shared_ptr<pcl::visualization::PCLVisualizer> viewer(
new pcl::visualization::PCLVisualizer("cloud view")); //PCLVisualizer 可视化类
viewer->setBackgroundColor(1, 1, 1); //black
viewer->addCoordinateSystem(1); //添加坐标系显示
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud;
viewer->addPointCloud(cloud, "cloud");
while (!viewer->wasStopped()) {
viewer->spin();
}
定义点云颜色
pcl::visualization::PointCloudColorHandlerCustom < pcl::PointXYZ > clolor(cloud , 255, 0, 255); //Magenta
viewer->addPointCloud(cloud, clolor, "cloud" );
定义点云大小
viewer_->setPointCloudRenderingProperties(
pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 3, "cloud" );
点云中添加形状
矩形:
Eigen::Quaternionf rotation;//定义四元数旋转
Eigen::Vector3f translation; // 定义平移向量
viewer->addCube(translation, rotation , width, length, height, "cube");
箭头:
pcl::PointXYZ rcenter;//箭头起始点
pcl::PointXYZ center;//箭头终点
viewer->addArrow(rcenter, center, w, l, h, false, "arrow" );
定义形状颜色:
viewer_->setShapeRenderingProperties( pcl::visualization::PCL_VISUALIZER_COLOR, 1.0, 1.0, 1.0, "cube"); //DeepSkyBlue
删除形状:
viewer->removeShape("cube");
添加字体:
string text;
pcl::PointXYZ position;
viewer->addText3D(text, position, 0.8, 1.0, 1.0, 1.0, "text");// w, h , l , 字体粗细
删除所有形状:
viewer->removeAllShapes();
删除点云
viewer->removeAllPointClouds();
更新点云
viewer-> updatePointCloud(cloud,"cloud")