带有多个Kinect的PointCloud

时间:2012-03-26 18:33:46

标签: processing kinect openni point-clouds

我正在尝试在Processing上创建一个带有多个kinects的PointCloud映射用户。我得到用户的正面和背面,两侧有2个kinects,并生成两个PointClouds。

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

1 个答案:

答案 0 :(得分:4)

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

  1. 决定将哪个Kinect用作全局参考
  2. 获取每个其他Kinect的3D转换参数 - 我试着 使用PMatrix3D和applyMatrix(),虽然它可能很慢,
  3. 将变换应用于其他每个Kinects的点云并绘制 云
  4. 我(还)知道如何获取Procrustes transformation的转换参数,但假设它们不会改变,您可能需要设置多个参考点,可能是通过显示点来自每对Kinects的云和注册你知道的点在两个点云中是相同的。获得足够的数据后,构建一个PMatrix3D并将其应用于push / popMatrix。 这是这个人使用的方法:http://www.youtube.com/watch?v=ujUNj1RDL4I

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