PCL显示函数的例子

来源:互联网 发布:淘宝账户永久冻结解冻 编辑:程序博客网 时间:2024/06/10 07:38

/* \author Geoffrey Biggs */

#include <iostream>#include <boost/thread/thread.hpp>#include <pcl/common/common_headers.h>#include <pcl/features/normal_3d.h>#include <pcl/io/pcd_io.h>#include <pcl/visualization/pcl_visualizer.h>#include <pcl/console/parse.h>

// ————–
// —–Help—–
// ————–
void
printUsage(const char* progName)
{
std::cout << “\n\nUsage: ” << progName << ” [options]\n\n”
<< “Options:\n”
<< “——————————————-\n”
<< “-h this help\n”
<< “-s Simple visualisation example\n”
<< “-r RGB colour visualisation example\n”
<< “-c Custom colour visualisation example\n”
<< “-n Normals visualisation example\n”
<< “-a Shapes visualisation example\n”
<< “-v Viewports example\n”
<< “-i Interaction Customization example\n”
<< “\n\n”;
}

boost::shared_ptr simpleVis(pcl::PointCloud::ConstPtr cloud)
{
// ——————————————–
// —–Open 3D viewer and add point cloud—–
// ——————————————–
//创建可视化对象viewer
boost::shared_ptr viewer(new pcl::visualization::PCLVisualizer(“3D Viewer”));
//设置背景为黑色
viewer->setBackgroundColor(0, 0, 0);
//将要显示的点云添加到可视化对象中。
viewer->addPointCloud(cloud, “sample cloud”);
//渲染点云
viewer->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 1, “sample cloud”);
//添加坐标轴
viewer->addCoordinateSystem(1.0);
//初始化相机
viewer->initCameraParameters();
return (viewer);
}

boost::shared_ptr rgbVis(pcl::PointCloud::ConstPtr cloud)
{
// ——————————————–
// —–Open 3D viewer and add point cloud—–
// ——————————————–
boost::shared_ptr viewer(new pcl::visualization::PCLVisualizer(“3D Viewer”));
viewer->setBackgroundColor(0, 0, 0);
pcl::visualization::PointCloudColorHandlerRGBField rgb(cloud);
viewer->addPointCloud(cloud, rgb, “sample cloud”);
viewer->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 3, “sample cloud”);
viewer->addCoordinateSystem(1.0);
viewer->initCameraParameters();
return (viewer);
}

//
boost::shared_ptr customColourVis(pcl::PointCloud::ConstPtr cloud)
{
// ——————————————–
// —–Open 3D viewer and add point cloud—–
// ——————————————–
boost::shared_ptr viewer(new pcl::visualization::PCLVisualizer(“3D Viewer”));
viewer->setBackgroundColor(0, 0, 0);
pcl::visualization::PointCloudColorHandlerCustom single_color(cloud, 0, 255, 0);
viewer->addPointCloud(cloud, single_color, “sample cloud”);
viewer->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 3, “sample cloud”);
viewer->addCoordinateSystem(1.0);
viewer->initCameraParameters();
return (viewer);
}

//法线显示
boost::shared_ptr normalsVis(
pcl::PointCloud::ConstPtr cloud, pcl::PointCloud::ConstPtr normals)
{
// ——————————————————–
// —–Open 3D viewer and add point cloud and normals—–
// ——————————————————–
boost::shared_ptr viewer(new pcl::visualization::PCLVisualizer(“3D Viewer”));
viewer->setBackgroundColor(0, 0, 0);
pcl::visualization::PointCloudColorHandlerRGBField rgb(cloud);
viewer->addPointCloud(cloud, rgb, “sample cloud”);
viewer->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 3, “sample cloud”);
viewer->addPointCloudNormals

原创粉丝点击