一、cpp
#include <iostream>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
#include <string>
int main (int argc, char** argv)
{
for(int j = 1; j < 5; j++)
{
pcl::PointCloud<pcl::PointXYZ> cloud;
cloud.width = 5;
cloud.height = 1;
cloud.is_dense = false;
cloud.points.resize(cloud.width * cloud.height);
for (size_t i = 0; i < cloud.points.size(); ++i)
{
int m = j * 10;
cloud.points[i].x = m * rand() / (RAND_MAX + 1.0f);
cloud.points[i].y = m * rand() / (RAND_MAX + 1.0f);
cloud.points[i].z = m * rand() / (RAND_MAX + 1.0f);
}
std::string n = "test_pcd";
char r = char(j);
n.insert(n.length() - 1, 1, r);
n += ".pcd";
pcl::io::savePCDFileASCII(n, cloud);
std::cerr << "Saved " << cloud.points.size() << " data points to test_pcd.pcd." << std::endl;
for (size_t i = 0; i < cloud.points.size (); ++i)
std::cerr << " " << cloud.points[i].x << " " << cloud.points[i].y << " " << cloud.points[i].z << std::endl;
}
return (0);
}
二、CMakeLists.txt
cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
project(xyz2pcd)
find_package(PCL REQUIRED)
include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})
add_executable (xyz2pcd pcdwrite.cpp)
target_link_libraries (xyz2pcd ${PCL_LIBRARIES})