2011-11-28 92 views
2

我正在研究一个涉及使用Microsoft Kinect创建对象的3D模型的项目。 我打算使用Microsoft Kinect SDK OpenNI以不同角度捕捉对象的云点,并使用ICP映射和创建对象的3D。 如果我在上面的陈述中有错,请纠正我的错误。因为我是一个业余爱好者,所以我真的不知道我是否正朝着正确的方向前进。我的硬件细节是 - Microsoft Kinect,Windows 7 - 64位,Microsoft Visual Studio 2010,Microsoft Kinect SDK,OpenNI,Primesense,NITE(所有安装使用.exe或自我提取器,我没有使用cmake ..因为我遇到了这么多的错误!)使用OpenNI和Kinect获取云点

截至目前,我已经能够连接我的Kinect,并使用一些演示教程在线我能够查看RGB数据和Kinect的深度图。 我正在阅读有关OpenNI的内容,但无法在此方面取得很大进展。 (有一个在C代码++和C#) 现在的问题 -

  1. 我如何获得我把对象的每个图像的“点云”?我应该使用OpenNi吗?

  2. 获得每个图像的云点后,我打算运行ICP算法。我可以使用任何详细信息或链接了解并实施它?

  3. 运行ICP算法后,我需要显示重新创建的3D,那么我应该使用Visual Studio 2010本身来做它吗?

  4. 我遇到过一些像'Meshlab'这样的软件,它们使用.ply文件来帮助创建3D .. .ply数据从Kinect的深度图中获得...这是我可以看到的另一个方向吗?

感谢 阿迪亚

回答

2
  1. 我不是太熟悉Kinect的,因为我还没有使用它,但http://borglabs.com/blog/create-point-clouds-from-kinect可能是有帮助的。我似乎记得读过,你会想要在Kinect中校准相机。 http://www.vision.caltech.edu/bouguetj/calib_doc/可能会为您确定相机校准参数提供良好的开始。 http://opencv.willowgarage.com/wiki/是一个C++库,提供相机校准的C/C++实现。 http://nicolas.burrus.name/index.php/Research/KinectRgbDemoV6看起来更像Kinect专用的解决方案。

  2. http://vtk.org/提供了ICP的实现。 http://pointclouds.org/也包含注册算法。

  3. VTK提供了封装OpenGL的类,使数据可视化变得简单。也许我提到的其他一些库也可以这样做,但我对它们并不熟悉。

  4. PLY文件只是许多3D文件格式中的一种......它是一个通用容器,可容纳顶点坐标以及通过连接顶点形成的多边形。再次,VTK提供读/写PLY的类以及许多其他3D文件格式。

+0

非常感谢您的建议!我会尽快回复我的发现。 – Aditya