Давайте возьмем учебник 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].