我使用pcl::FPFHEstimation类来检测这样的特征点。
pcl::FPFHEstimationOMP<pcl::PointXYZ, pcl::Normal, pcl::FPFHSignature33> fest;
pcl::PointCloud<pcl::FPFHSignature33>::Ptr object_features(new pcl::PointCloud<pcl::FPFHSignature33>());
fest.setRadiusSearch(feature_radius);
fest.setInputCloud(source_cloud);
fest.setInputNormals(point_normal);
fest.compute(*object_features);
我的问题是如何在pointcloud中可视化检测到的特征点,比如检测到的特征点为红色,非特征点为白色。
我找了很多,但我只找到一些显示直方图的方法,这不是我想要的。
快速点特征直方图 是一个点描述符(在pcl中,它的形式是 pcl::FPFHSignature33
). 这意味着算法会计算输入点云中所有点的直方图。一旦计算出点的描述符,就可以对点进行分类、分割......。但对点进行分类或分割的过程将是另一种算法。
在 这个 论文中我使用FPFH来粗略地对齐点云。在那里,我使用FPFH描述符来决定云A的哪个点对应云B的哪个点(关联点)。在这个出版物中,我所做的是计算FPFH之前所有点的曲率,然后,我只计算曲率高于给定阈值的点子集的FPFH。这就是我如何提取关键点。然后,我使用这些关键点的FPFH fo其余的东西(在我的情况下,关联点从不同的点云)。
你在你的一个评论中提出的类比。"所以由FPFH计算的特征描述符 更像是一个多维特征向量什么的" 将是一个很好的。
所以,回答你的问题。不,没有其他的工具 除了直方图可视化FPFH数据(或至少没有一个开箱即用的pcl类 你可以使用)。