使用PCL读取并显示ply格式的点云文件:
创建main.cpp,代码如下:
#include <iostream>
#include <pcl/point_types.h>
#include <pcl/io/ply_io.h>
#include <pcl/visualization/pcl_visualizer.h>
typedef pcl::PointXYZ PointT;
typedef pcl::PointCloud<PointT> PointCloudT;
int main(int argc,char** argv)
{
PointCloudT::Ptr cloud(new PointCloudT);
// 读取点云
std::string filename = argv[1];
if (pcl::io::loadPLYFile(filename, *cloud)<0)
{
std::cout << "error";
}
// 点云显示
pcl::visualization::PCLVisualizer::Ptr 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->initCameraParameters ();
while (!viewer->wasStopped())
{
viewer->spinOnce();
}
return 0;
}
创建 CMakeLists.txt文件:
cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
project(ply_viewer)
find_package(PCL 1.2 REQUIRED)
include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})
add_executable (ply_viewer main.cpp)
target_link_libraries (ply_viewer ${PCL_LIBRARIES})
对代码进行编译:
mkdir build
cd build
cmake ..
make
然后在build文件夹下执行指令:其中../Surfels-xyz.ply为ply格式文件所在位置:
./ply_viewer ../Surfels-xyz.ply
最后显示的结果:
利用pcl_viewer工具讀取pcd格式文件:
pcl_viewer my_128.pcd
結果顯示: