PCL 描述符匹配
PCL desciptors matching
我在匹配两个描述符的结果时遇到问题。我正在使用点云库的 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);
那么有没有其他方法可以用来匹配特征??
最后,感谢您花时间考虑我的问题..:)
你确定你的特征是正确的吗?
对于 fpfh 特征估计,您必须设置搜索半径 > 比正常估计半径。
您也可以尝试一些 CorrespondenceReejction 技术以获得更好的匹配结果。
我在匹配两个描述符的结果时遇到问题。我正在使用点云库的 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);
那么有没有其他方法可以用来匹配特征??
最后,感谢您花时间考虑我的问题..:)
你确定你的特征是正确的吗? 对于 fpfh 特征估计,您必须设置搜索半径 > 比正常估计半径。
您也可以尝试一些 CorrespondenceReejction 技术以获得更好的匹配结果。