我在Visual studio 2012中用OpenCV 2.4.6(不带OpenNI)编写了一个OpenCV项目。
项目使用集成的网络摄像头,但现在我想使用Kinect相机的RGB帧,而不是网络摄像头。
- 是否可以在不安装OpenNI的情况下使用Kinect prime sense相机
- 我需要安装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驱动程序。谢谢
您可以使用以下三种方法中的任何一种从Kinect传感器读取数据,
- Microsoft Kinect for Windows SDK
- OpenKinect的libfreenect API
- OpenNI+OpenKinect
为了进一步参考,我想引导您进入这个主题:如何使用opencvc++拍摄动态视频图像和深度图像?
HTH
-
否(如果你正在尝试
VideoCapture capture(CV_CAP_OPENNI);
,这取决于此。还有libfreenect之类的,但那是另一回事。) -
是的(这可能就是它失败的原因)。
还要检查:cout << cv::getBuildInformation();
,看看你的opencv库是否是用openni支持构建的:
Video I/O:
...
OpenNI: NO
OpenNI PrimeSensor Modules: NO
如果答案是"否",则必须从src(安装了openni-sdk)重建opencv,