我们正在使用kinect和opencv做一个项目。我是3D分析的新手。主要目的是从kinect获取深度和rgb信息,处理rgb mat(基本过滤和阈值函数)并将处理后的rgb图像与原始深度信息相结合。我需要基本的步骤来使用合适的应用程序(opencv,opengl,openni,kinect sdk等)
1)如何将深度和rgb信息从kinect传递给opencv?
2)我们可以单独访问rgb图像进行处理吗?
3)如何将两者和用于显示输出的函数结合起来?
我们使用windows-64 bit和kinect作为3D传感器。我们计划使用OpenNI获取图像rgb和深度信息,然后在OpenCV中处理rgb,然后在OpenGL的帮助下在窗口中显示图像(处理RGB +深度)。
答案 0 :(得分:2)
首先,我认为你的问题太笼统了,这将取决于你使用的库/驱动程序...例如,如果你使用openni然后你以一种方式传递信息,如果你使用kinect sdk你将不得不使用另一种方法...
2)是的,您可以独立于深度信息访问RGB图像并进行处理......
3)结合两者,我想你的意思是深度和rgb。这还取决于您使用的库和驱动程序。您想要存储它的方式,例如点云,图像等
我的建议是准确定义您想要实现的目标,使用哪些库以及在哪个操作系统中编辑您的问题。
我使用openni2,opencv和Qt创建了一个工具,我只用linux中的primesense相机和structure.io相机进行了测试,但你可能会知道该怎么做。该工具可以进行一些基本的阈值处理,并以不同的格式(pcd,images,oni)保存数据。 Link
我也使用了与openni1和Avin的驱动程序和Kinect1相机几乎相同的方法,周三我可以上传代码你可以看看,但基本上是一样的,只是初始化改变了一点位。
作为使用RGB-D图像时应该做的事情的基本清单:
此外,您可以查看Point Cloud Library,他们有一个很好的包装器可以完成这项工作,然后很容易将它变成一个pointcloud。
我希望这些信息可以帮到你。
<强>更新强> 对于Windows中的Kinect 1,可以安装最新的Kinect SDK并使用openni2而无需安装其他驱动程序。
如果一切顺利,那么你只需要:
如果您对任何步骤有疑问,我可以给您代码片段,只是问一个关于它的新问题,我会回答它。
我希望这有助于你