在 PCL 中从另一个点云中删除点?
Posted
技术标签:
【中文标题】在 PCL 中从另一个点云中删除点?【英文标题】:Remove points in one point cloud from another in PCL? 【发布时间】:2018-04-10 05:49:25 【问题描述】:假设我有两个点云 A 和 B。我想做以下操作: C=A-B 其中 C 是操作的输出云。我知道 PCL 具有用于连接两个点云的“+”操作,例如:
pcl::PointCloud<pcl::PointXYZ> A;
pcl::PointCloud<pcl::PointXYZ> B; //assume A and B have points in them
pcl::PointCloud<pcl::PointXYZ> C = A+B;
但是我不认为有一个“-”运算符可以从另一个点云中删除点。
我可以为 A 和 B 创建哈希映射吗?输出 C 只有在哈希图中出现一次的点。或者有更好的方法吗?
【问题讨论】:
我建议你看看这个答案:***.com/a/48595186/2761849 【参考方案1】:如果云 B
是云 A
的子集(即,这些点具有相同的位置,但它们只是一个子集)并且您知道它们的索引,那么您可以简单地过滤索引。
在更一般的情况下,A
和 B
中的点相似但不一样,你需要稍微花点心思。对于B
中的每个点,使用半径搜索或kd-search 查找A
中最近的点,然后从A
中删除已识别的点。
【讨论】:
以上是关于在 PCL 中从另一个点云中删除点?的主要内容,如果未能解决你的问题,请参考以下文章