使用OpenNI和Kinect获得云点

本文关键字:Kinect OpenNI 使用 | 更新日期: 2023-09-27 18:15:50

我正在做一个项目,涉及使用微软Kinect创建一个物体的3D模型。我计划使用微软Kinect SDK和OpenNI从不同角度捕捉物体的云点,并使用ICP来映射和创建物体的3D。如果我上面说错了,请纠正我。因为我是一个业余爱好者,我真的不知道我是否走在正确的方向。

我的硬件细节是-微软Kinect, Windows 7 - 64位,微软Visual Studio 2010,微软Kinect SDK, OpenNI,Primesense,NITE(所有安装使用。exe或自提取器,我没有使用cmake…我有点受够了用这个!因为我遇到了这么多错误!)

到目前为止,我已经能够连接我的Kinect,并使用一些在线演示教程,我能够查看Kinect的RGB数据和深度图。我读了关于OpenNI的文章,也没能在这方面取得多大进展。(有c++和c#代码)现在是问题-
  1. 我如何得到每个图像的"云点",我采取的对象?我应该使用OpenNi吗?

  2. 在得到每张图像的云点后,我计划运行ICP算法。我可以用任何细节或链接来学习和实施它吗?

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

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

谢谢Aditya

使用OpenNI和Kinect获得云点

  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文件格式。