那scene_descriptors如果是一个二维的布尔型描述子,这个应该怎么改
时间: 2024-02-18 15:03:14 浏览: 104
如果scene_descriptors是一个布尔型描述子,可以将函数中的`pcl::PointCloud<pcl::SHOT352>::Ptr`类型改为`pcl::PointCloud<pcl::Histogram<64, pcl::po::common::IntensityAndXY> >::Ptr`类型。同时,将函数中涉及到SHOT描述子的部分改为布尔型描述子的计算方式。具体代码如下:
```
pcl::PointCloud<pcl::Histogram<64, pcl::po::common::IntensityAndXY> >::Ptr model_descriptors(new pcl::PointCloud<pcl::Histogram<64, pcl::po::common::IntensityAndXY> >());
pcl::PointCloud<pcl::Histogram<64, pcl::po::common::IntensityAndXY> >::Ptr scene_descriptors(new pcl::PointCloud<pcl::Histogram<64, pcl::po::common::IntensityAndXY> >());
pcl::SHOTColorEstimation<pcl::PointXYZRGBA, pcl::Normal, pcl::Histogram<64, pcl::po::common::IntensityAndXY> > descr_est;
descr_est.setInputCloud(model);
descr_est.setInputNormals(model_normals);
descr_est.setRadiusSearch(0.02);
descr_est.compute(*model_descriptors);
descr_est.setInputCloud(scene);
descr_est.setInputNormals(scene_normals);
descr_est.setRadiusSearch(0.02);
descr_est.compute(*scene_descriptors);
pcl::registration::CorrespondenceEstimation<pcl::Histogram<64, pcl::po::common::IntensityAndXY>, pcl::Histogram<64, pcl::po::common::IntensityAndXY> > est;
est.setInputSource(model_descriptors);
est.setInputTarget(scene_descriptors);
est.determineCorrespondences(*model_scene_corrs);
```
这里使用的是PCL库中的`pcl::Histogram<64, pcl::po::common::IntensityAndXY>`类型来表示布尔型描述子。同时,使用`pcl::SHOTColorEstimation`类来计算布尔型描述子,并使用`pcl::registration::CorrespondenceEstimation`类来计算匹配关系。
阅读全文