Kinect + OpenCV + QtCreator

Posted

技术标签:

【中文标题】Kinect + OpenCV + QtCreator【英文标题】: 【发布时间】:2012-02-24 01:55:13 【问题描述】:

这只是一个广泛的问题,以获得一些起点。

我正在考虑购买 Microsoft Kinect,以便使用它进行一些编程。

我更喜欢使用 C++ 编程,并且通常使用 QtCreator 而非 VS 来制作接口。我看到有几个 Kinect 可以购买 - 普通游戏设备,以及包含 SDK 的“Kinect for Windows”,似乎?我真的需要那个吗,或者我可以购买更便宜的 Kinect 游戏设备吗?我看到那里有一个 openkinect 项目 - 我认为这是“for Windows”版本的 FOSS 等价物?我想我在某个地方读到了 MS SDK 只能在 Visual Studio(我有)中工作,但如果它好得多,我想我可以为这些项目切换到 VS。

其次,我有兴趣将一些动作捕捉/3d 模型投影到我捕捉的 3d 对象上。我肯定需要深度相机来做这种事情吗? (如 - 将“怪物”映射到在场景中四处移动的人)。这就是我认为 OpenCV 可能派上用场的地方 - 我对 OpenCV 特别感兴趣,因为它支持 GPU 的功能。

感谢讨论(提前)

【问题讨论】:

【参考方案1】:

我正在为研究项目开发 kinect 设备,所以我想我可以回答您的一些问题...

一些与 kinect 一起使用的 Open SDK:

    如果你喜欢 QT,你会喜欢:QT Kinect Widget。我从不测试这个小部件。 OpenNI:OpenNI。那是 Kinect 或 Asus XTion pro(也称为 RGBD 传感器)等传感器的官方驱动程序。如果您想快速制作智能人机界面,此 API 可以为您提供原始点云或骨架。 点云库:PCL。您可以使用该库获取点云,然后使用该库中的所有算法开发您自己的点云应用程序! 当然还有 OpenCV 包装器:OpenCV。这将为您提供深度图(不是点云)。

所有这些 SDK 都可以在 linux 和 windows 上与 QtCreator 一起使用。

硬件:

如果您在视频游戏商店购买 kinect,您将无法将其插入计算机,因为插座不是标准的。您需要购买适配器:KinectAdapter。这个适配器是必需的,因为 Kinect 有一个直流电机,USB 不能为这个电机提供足够的电力。

如果您现场购买 Asus XTION Pro,则不需要任何适配器。该设备上没有直流电机,我很确定它与 kinect 完全相同。我认为微软没有“发明”kinect,但 OpenNI 做到了!华硕为他们的 XTION 购买了 OpenNI 的许可证,微软为他们的 kinect 购买了 openni :)

您的申请

我从来没有做过运动捕捉和 3D 模型投影,但我可以告诉你,使用深度传感器会更容易。我认为最好的方法是使用 PCL 获取点云和 RGB 图像。借助 PCL 中的平面检测器,您可以计算 3D 模型的投影,并使用 OpenCV 显示 RGB 数据和投影模型。

【讨论】:

感谢您的反馈!您是否真的为 kinect 设备使用过 Microsoft SDK?你用你的kinect做什么?对于我正在尝试做的事情 - 动作捕捉 + 3d 模型映射/投影,你认为我最好使用 Open SDK 还是 MS SDK? 您好,我正在使用kinect做室内场景的物体检测和分类。最终目标是让机器人知道他在什么房间里(厨房、卧室……)。我从不使用 Microsoft SDK。我能告诉你的唯一想法是关于开源 sdk。 PCL和OpenNI都是很好的SDK,我觉得没必要买专有的SDK。您是否有权访问 Microsoft SDK 的规范?这个 SDK 似乎提供了比所有 OpenSDK 方法更有帮助的方法吗?

以上是关于Kinect + OpenCV + QtCreator的主要内容,如果未能解决你的问题,请参考以下文章

将 OpenCV 阈值与 Kinect 图像结合使用

Kinect和Opencv,深度图,怎么用

Kinect2入门+opencv画骨架+骨架数据

C++ OpenCV 2.4.0 findContours 因 Kinect 深度流而崩溃

Kinect2入门+opencv画骨架+骨架数据

c_cpp OpenCV 4.0 Kinect Fusion