【问题标题】:To Display RGB video frame using opencv and kinect primesense camera?使用 opencv 和 kinect primesense 相机显示 RGB 视频帧?
【发布时间】:2013-11-21 20:00:39
【问题描述】:

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

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

  1. 是否可以在不安装 OpenNI 的情况下使用 Kinect prime sense 相机?
  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 驱动程序。谢谢。

【问题讨论】:

  • 你得到什么错误..?
  • 没有错误,capture.isopened() 为假.... 无法打开捕获

标签: opencv kinect openni primesense


【解决方案1】:

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

  1. Microsoft Kinect for Windows SDK
  2. OpenKinect 的 libfreenect API
  3. OpenNI + OpenKinect

为了进一步参考,我想将您引向这个主题: How to take kinect video image and depth image with openCV c++?

HTH

【讨论】:

  • 感谢您的链接。但是没有任何方法可以将主感摄像头视为网络摄像头并且应该可以工作吗?
  • 不是,因为 Kinect 和普通相机的数据格式完全不同。您将需要一个可以正确读取图像的阅读器类。
【解决方案2】:
  1. 否(如果您正在尝试 VideoCapture capture(CV_CAP_OPENNI);,则取决于此。还有 libfreenect 之类的,但这是另一回事..)

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

还检查:cout &lt;&lt; cv::getBuildInformation(); 以查看您的 opencv 库是否是在 openni 支持下构建的:

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

如果那里的答案是“否”,您必须从 src(安装了 openni sdk)重建 opencv

【讨论】:

  • 感谢您的回答。我将不得不安装 openNI!
  • 同样,@scap3y 的回答也值得考虑。如果您已经安装了任何其他框架,则更多的是从 他们的 捕获方法制作一个 cv::Mat,而不是使用 VideoCapture
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多