【问题标题】:Remove points in one point cloud from another in PCL?在 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 只有在哈希图中出现一次的点。或者有更好的方法吗?

【问题讨论】:

标签: point-cloud-library point-clouds


【解决方案1】:

如果云 B 是云 A 的子集(即,这些点具有相同的位置,但它们只是一个子集)并且您知道它们的索引,那么您可以简单地过滤索引。

在更一般的情况下,AB 中的点相似但不一样,你需要稍微花点心思。对于B 中的每个点,使用半径搜索或kd-search 查找A 中最近的点,然后从A 中删除已识别的点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-08
    • 2014-03-24
    • 2018-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-17
    相关资源
    最近更新 更多