3

我正在尝试在处理上创建一个具有多个 kinect 的 PointCloud 映射用户。我在对面使用 2 个 kinect 获取用户的正面和背面,并生成两个点云。

问题是 PointClouds X/Y/Z 没有同步,它只是把它们两个放在屏幕上,看起来肯定很乱。有一种方法可以计算或比较它们,将第二个 PointCloud 转换为“加入”第一个?我可以手动转换位置,但如果我移动传感器,它会再次关闭。

4

1 回答 1

4

假设所有 Kinect 都是静止的,我想你必须按以下顺序进行:

  1. 决定使用哪个 Kinect 作为全局参考,
  2. 为每个其他 Kinect 获取 3D 转换的参数 - 我会尝试使用 PMatrix3D 和 applyMatrix(),虽然它可能很慢,
  3. 将变换应用于每个其他 Kinect 的点云并绘制云

我(还)不知道如何获取Procrustes 转换的转换参数,但假设它们不会改变,您可能必须设置多个参考点,可能通过显示来自每对 Kinects 的点云并在两个点云中注册您知道的点是相同的。在获得足够的它们之后,构造一个 PMatrix3D 并将其应用到 push/popMatrix 中。这是这个人使用的方法:http ://www.youtube.com/watch?v=ujUNj1RDL4I

另一种方法是使用迭代最近点算法并从其输出构造 3D 变换。如果有人知道一个好的,我真的很想要一个用于处理的 ICP 或 PCL 库。

于 2012-03-27T12:01:05.950 回答