PCL可视化点云常用的有以下两种方法:
一:CloudViewer
code:
// pcl_points_visualization.cpp: 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include<pcl/visualization/cloud_viewer.h>
#include<pcl/point_cloud.h>
#include<pcl/io/pcd_io.h>
int main()
{
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
pcl::io::loadPCDFile("table_scene_lms400.pcd", *cloud);
pcl::visualization::CloudViewer viewer("cloud viewer");
viewer.showCloud(cloud);
while (!viewer.wasStopped())
{
}
return 0;
}
result:
官方下载的一个pcd文件,链接:pcd文件
二:PCLVisualizer
code:
关键部分代码
boost::shared_ptr<pcl::visualization::PCLVisualizer>viewer(new pcl::visualization::PCLVisualizer("3D Viewer"));
viewer->initCameraParameters();
int v1(0);
//createViewPort是用于创建新视口的函数,所需的4个参数分别是视口在X轴的最小值,Y轴的最小值,X的最大值,Y的最大值,取值在0-1.
viewer->createViewPort(0.0, 0.0, 0.5, 1.0, v1);
viewer->setBackgroundColor(0, 0, 0, v1);
//添加各视窗文字介绍
viewer->addText("original_datas", 10, 10, "v1 text", v1);
//设置点云颜色
//pcl::visualization::PointCloudColorHandlerCustom<pcl::PointXYZ> source_color(cloud, 0, 255, 0)
viewer->addPointCloud<pcl::PointXYZ>(cloud,"black", v1);
int v2(0);
viewer->createViewPort(0.5, 0.0, 1.0, 1.0, v2);
viewer->setBackgroundColor(0.3, 0.3, 0.3, v2);
viewer->addText("color_datas", 10, 10, "v2 text", v2);
pcl::visualization::PointCloudColorHandlerRGBField<pcl::PointXYZRGB> rgb(m_cloud,255,0,0);
viewer->addPointCloud<pcl::PointXYZRGB>(m_cloud,rgb,"color", v2);
viewer->spin();//可旋转