使用预先计算的特征在 PCL 中进行点云配准



我计划在PCL中使用RANSAC在两个云之间进行注册,并且我已经从另一个程序计算了特征。是否可以以某种方式将这些功能加载到 PCL 中以用于注册?

让我们以 PCL 的预拒绝对齐教程为例,该教程使用 FPFH 特征并对其进行调整。

下面的代码(从教程中提取(定义特征类型,对其进行计算并传递给对齐对象。

typedef pcl::FPFHSignature33 FeatureT;
typedef pcl::PointCloud<FeatureT> FeatureCloudT;
FeatureCloudT::Ptr scene_features (new FeatureCloudT);
...
fest.compute (*scene_features);
...
pcl::SampleConsensusPrerejective<PointNT,PointNT,FeatureT> align;
align.setTargetFeatures (scene_features);

pcl::SampleConsensusPrerejective的第三个模板参数是要素类型(在示例pcl::FPFHSignature33中(。因此,我们需要做的就是将其替换为一些自定义特征类型。

由于直方图点类型,这很容易。要定义 N 维特征点类型:

typedef pcl::Histogram<N> FeatureT;
FeatureT feature_vector;

feature_vector.histogram是一个浮点[N] 数组。

最新更新