CMakeLists.txt 写入
#声明最低版本要求
cmake_minimum_required(VERSION 2.6 FATAL_ERROR)
#声明项目
project(pcl-pcd_write)
#自动寻找构建构成需要的package
find_package(PCL 1.7 REQUIRED)
#包含头文件位置文件夹
include_directories(${PCL_INCLUDE_DIRS})
#添加链接的lib库文件路径
link_directories(${PCL_LIBRARY_DIRS})
#添加相关定义
add_definitions(${PCL_DEFINITIONS})
#源文件是 pcb_write.cpp 一个C++文件,pcb是一种点云格式
#pcb_write是执行文件,生成之后./即可运行
add_executable (pcd_write pcd_write.cpp)
#执行文件连接到库
target_link_libraries (pcd_write ${PCL_LIBRARIES})
pcd_write.cpp 写入
//包含iostream库
#include <iostream>
//包含头文件:pcd_io/point_types/time
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
#include<time.h>
//主函数
int main ()
{
srand((int)time(0));//以当前事件对应的int值为随机序列起点
pcl::PointCloud<pcl::PointXYZ> cloud;//声明一个名为cloud的点云
// Fill in the cloud data
cloud.width = 5;//点云宽度与点云大小相同,为5
cloud.height = 1;//高度为1
cloud.is_dense = false;//无序点云
cloud.resize (cloud.width * cloud.height);//resize点云
//利用for循环+auto&给点云的x/y/z赋值
for (auto& point: cloud)
{
point.x = 1024 * rand () / (RAND_MAX + 1.0f);
point.y = 1024 * rand () / (RAND_MAX + 1.0f);
point.z = 1024 * rand () / (RAND_MAX + 1.0f);
}
//保存点云,test_pcd.pcd,在执行目录下
pcl::io::savePCDFileASCII ("test_pcd.pcd", cloud);
//打印信息,点的数量
std::cerr << "Saved " << cloud.size () << " data points to test_pcd.pcd." << std::endl;
//把每个点打印出来
for (const auto& point: cloud)
std::cerr << " " << point.x << " " << point.y << " " << point.z << std::endl;
return (0);
}
cmake…
make
./pcd.write
然后我们就可以在相关软件平台去写入代码,对点云进行操作。