点云库PCL学习——特征描述与提取(3)

一、点特征直方图描述子(PFH)

计算方式通过参数化查询点与淋浴点之间的空间差异,并形成一个多维直方图对点的k邻域集合属性进行描述。

以下代码段对输入数据集中所有点估计其对应的PFH特征。

#include 
#include     //PFH


pcl::PointCloud::Ptr cloud(new pcl::PointCloud);
pcl::PointCloud::Ptr normals (new pcl::PointCloud());

//以下为本章主要内容
pcl::PFHEstimationpfh;
pfh.setInputCloud(cloud);
pfh.setInputNormals(normals);
//创建一个空的kd树表示法
pcl::KdTreeFLANN::Ptr tree(new pcl::KdTreeFLANN());
pfh.setSearchMethod(tree);
//输出的数据集
pcl::PointCloud::Ptr pfhs(new pcl::PointCloud());
//使用半径内5里面范围所有元素
pfh.setRadiusSearch(0.05);

pfh.compute(*pfhs);

二、快速点特征直方图描述子(FPFH)

复杂度比PFH低,但是总体性能不变。

以下代码段对输入数据集中所有点估计其对应的FPFH特征。

#include 
#include     //PFH


pcl::PointCloud::Ptr cloud(new pcl::PointCloud);
pcl::PointCloud::Ptr normals (new pcl::PointCloud());

//以下为本章主要内容
pcl::FPFHEstimation fpfh;
fpfh.setInputCloud(cloud);
fpfh.setInputNormals(normals);
//创建一个空的kd树表示法
pcl::KdTreeFLANN::Ptr tree(new pcl::KdTreeFLANN());
fpfh.setSearchMethod(tree);
//输出的数据集
pcl::PointCloud::Ptr fpfhs(new pcl::PointCloud());
//使用半径内5里面范围所有元素
fpfh.setRadiusSearch(0.05);

fpfh.compute(*fpfhs);

三、视点特征直方图描述子(VFH)

在FPFH计算中将视点方向变量直接融入相对法线角计算当中。包含以下两部分:

1.一个视点方向相关的分量

2.一个包含扩展FPFH的描述表面形状的分量

以下代码段对输入数据集中所有点估计其对应的VFH特征:

#include 
#include     //vFH


pcl::PointCloud::Ptr cloud(new pcl::PointCloud);
pcl::PointCloud::Ptr normals (new pcl::PointCloud());

//以下为本章主要内容
pcl::VFHEstimation vfh;
vfh.setInputCloud(cloud);
vfh.setInputNormals(normals);
//创建一个空的kd树表示法
pcl::KdTreeFLANN::Ptr tree(new pcl::KdTreeFLANN());
vfh.setSearchMethod(tree);
//输出的数据集
pcl::PointCloud::Ptr vfhs(new pcl::PointCloud());
//使用半径内5里面范围所有元素
vfh.setRadiusSearch(0.05);

vfh.compute(*vfhs);

 

你可能感兴趣的:(PCL学习,点云库PCL学习)