注:点云字段相关即pcl::PCLPointField有关操作
1.获取点云字段列表
#include <pcl/common/io.h>
/****************获取点云字段列表<io.h>********************/
std::vector<pcl::PCLPointField> pointField = pcl::getFields<pcl::PointXYZINormal>(); // 获取点云字段列表
2.获取点云字段索引
#include <pcl/common/io.h>
/****************获取点云字段索引<io.h>********************/
int index = pcl::getFieldIndex<pcl::PointXYZINormal>(std::string("intensity"), pointField); // 获取某个点云字段的索引
3.获取点云字段列表
#include <pcl/common/io.h>
/****************获取点云字段列表(std::string)<io.h>********************/
std::string FieldsList = pcl::getFieldsList(*cloud); // 获取点云字段的列表
4.获取指定点云字段字长
#include <pcl/common/io.h>
/****************获取指定点云字段字长<io.h>********************/
int size = pcl::getFieldSize(pointField[0].datatype); // 获取指定点云字段的字长
5. 点云点拷贝
#include <pcl/common/copy_point.h>
pcl::PointXYZ p1(0, 0, 1.0), p2;
pcl::copyPoint(p1, p2);
6. 将一个点云复制到另一个点云
#include <pcl/common/io.h>
/****************将一个点云复制到另一个点云<io.h>********************/
// 本方法还有按照点云索引复制部分点云的重载
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud3(new pcl::PointCloud<pcl::PointXYZ>);
pcl::copyPointCloud(*cloud, *cloud3);