0

我在 Visual Studio 2012 中有一个用 OpenCV 2.4.6(没有 OpenNI)编写的 OpenCV 项目。

项目使用集成网络摄像头,但现在我想将 Kinect 摄像头用于 RGB 帧而不是网络摄像头。

  1. 是否可以在不安装 OpenNI 的情况下使用 Kinect 主感应相机?
  2. 我是否需要安装 OpenNI 并将其链接到 OpenCV 和所有东西才能使用 Prime sense 设备中的 RGB 相机?

目前我正在编写以下代码:

VideoCapture capture(CV_CAP_OPENNI); // I have tried with capture(0), capture(1)

if(!(capture.isOpened())){
    cout << "OPENCV:Cannot open the WebCamera" << endl;
    return -1;
}

结果是它无法打开捕获并且在这里失败。我对这一切都很陌生,请解释我是否需要安装任何东西或包含任何东西?我已经安装了 Prime Sense 驱动程序。谢谢。

4

2 回答 2

2

您可以使用以下 3 种方法中的任何一种从 Kinect 传感器读取数据,

  1. 适用于 Windows SDK 的 Microsoft Kinect
  2. OpenKinect 的 libfreenect API
  3. OpenNI + OpenKinect

为了进一步参考,我想将您引向这个主题: 如何使用 openCV c++ 拍摄 kinect 视频图像和深度图像?

高温高压

于 2013-11-21T20:08:05.870 回答
0
  1. 不(如果你正在尝试VideoCapture capture(CV_CAP_OPENNI);它只是取决于那个。还有 libfreenect 之类的,但那是另一个故事..)

  2. 是的(这可能就是它失败的原因)。

还要检查:cout << cv::getBuildInformation();看看你的opencv库是否是openni支持构建的:

Video I/O:
  ...
  OpenNI:                      NO
  OpenNI PrimeSensor Modules:  NO

如果答案是“否”,您将不得不从 src(安装了 openni sdk)重建 opencv

于 2013-11-21T20:12:13.500 回答