Регистрация облака точек в PCL с использованием предварительно вычисленных функций - PullRequest
0 голосов
/ 21 мая 2018

Я планирую выполнить регистрацию между двумя облаками, используя RANSAC в PCL, и у меня уже есть функции, вычисленные из другой программы.Можно ли как-то загрузить эти функции в PCL, чтобы использовать их для регистрации?

1 Ответ

0 голосов
/ 21 мая 2018

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

...