前面一段时间一直在写论文,好久都没有进行编程学习,突然觉得无从下手了,翻开以前写的代码练练手,顺便记录下来以便以后自己可以快速熟悉。
一个简单的点云pcd文件读取,并可视化。
/** Filename: pcd_read
** Date: 2018-3-27
**Description: Read PCD files & point cloud visualization
**/
#include "stdafx.h"
#include <iostream>
#include <pcl\io\pcd_io.h>
#include <pcl\point_types.h>
#include <pcl\visualization\cloud_viewer.h>
typedef pcl::PointXYZ PointT;
typedef pcl::PointCloud<PointT> PointCloudT;
int _tmain(int argc, _TCHAR* argv[])
{
PointCloudT::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
if (pcl::io::loadPCDFile<PointT>("test_pcd.pcd", *cloud )== -1)
{
PCL_ERROR("Couldn't read file test_pcd.pcd\n");
return(-1);
}
std::cout << "Loaded "
<< cloud->width*cloud->height
<< " data points from test_pcd.pcd with the following fields: "
<< std::endl;
pcl::visualization::CloudViewer viewer("viewer");
viewer.showCloud(cloud);
while (!viewer.wasStopped())
{
}
system("pause");
return 0;
}
可视化过程中还可以采用 pcl::visualization::PCLVisualizer
boost::shared_ptr<pcl::visualization::PCLVisualizer> viewer(new pcl::
visualization::PCLVisualizer ("3D Viewer"));
viewer->setBackgroundColor (0, 0, 0);
viewer->addPointCloud<pcl::PointXYZ> (cloud, "sample cloud");
viewer>setPointCloudRenderingProperties(pcl::visualization::
PCL_VISUALIZER_POINT_SIZE, 1, "sample cloud");
viewer->addCoordinateSystem (1.0);
viewer->initCameraParameters ();