我有关于匹配两个描述符的结果的问题。我正在使用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);
那么我可以使用任何其他方法来匹配功能吗?
最后,感谢您抽出时间考虑我的问题.. :)
答案 0 :(得分:0)
你确定你的特质是正确的吗? 对于fpfh特征估计,您必须设置搜索半径&gt;比正常的估计半径。
此外,您可以尝试一些CorrespondenceReejction技术,以获得更好的匹配结果。