匹配

时间:2016-12-19 14:01:24

标签: point-cloud-library

我有关于匹配两个描述符的结果的问题。我正在使用Point Cloud Library的FPFH描述符,如下面的代码所示。

// Compute the normals
pcl::NormalEstimation<pcl::PointXYZ, pcl::Normal> normalEstimation;
normalEstimation.setInputCloud(source_cloud);
normalEstimation.setSearchMethod(tree);

pcl::PointCloud<pcl::Normal>::Ptr source_normals(new pcl::PointCloud< pcl::Normal>);
normalEstimation.setRadiusSearch(0.1);
normalEstimation.compute(*source_normals);

pcl::PointCloud<pcl::FPFHSignature33>::Ptr source_features(new pcl::PointCloud<pcl::FPFHSignature33>());
pcl::FPFHEstimation<pcl::PointXYZ, pcl::Normal, pcl::FPFHSignature33> fpfh;
fpfh.setInputCloud(source_cloud);
fpfh.setInputNormals(source_normals);
boost::shared_ptr<std::vector<int> > indicesptr(new std::vector<int>(Source_keypoint_indices));
fpfh.setIndices(indicesptr);
fpfh.setSearchMethod(tree);
fpfh.setRadiusSearch(0.1);
fpfh.compute(*source_features);

并且同样用于目标云但是,当使用PCL对应关系估计如下所示时,结果是错误匹配

pcl::registration::CorrespondenceEstimation<pcl::FPFHSignature33, pcl::FPFHSignature33> est;
pcl::CorrespondencesPtr correspondences(new pcl::Correspondences());
est.setInputSource(source_features);
est.setInputTarget(target_features);
est.determineCorrespondences(*correspondences);

那么我可以使用任何其他方法来匹配功能吗?

最后,感谢您抽出时间考虑我的问题.. :)

1 个答案:

答案 0 :(得分:0)

你确定你的特质是正确的吗? 对于fpfh特征估计,您必须设置搜索半径&gt;比正常的估计半径。

此外,您可以尝试一些CorrespondenceReejction技术,以获得更好的匹配结果。