2012-12-10 52 views
1

我已经按照教程here安装了OpenNI和SensorKinect:示例查看器工作得很好。我已经下载的OpenCV 2.4.3,然后进行以下操作:OpenCv:无法打开Kinect捕获对象

  1. 的mkdir释放
  2. CD发行
  3. cmake的桂..
  4. 点击设置
  5. 集WITH_OPENNI到打勾
  6. 检查发现OPENNI dirs和primesense dir
  7. 命中configure然后生成
  8. 跑让

然后我尝试并运行的OpenCV-2.4.3 /样品/ openni_capture.cpp示例代码

不过,我得到以下输出:

Device opening ... 
done. 
Can not open a capture object. 

相关的代码:

VideoCapture capture(CV_CAP_OPENNI); 
if(isVideoReading) 
    capture.open(filename); 
else 
    capture.open(CV_CAP_OPENNI); 

cout << "done." << endl; 

if(!capture.isOpened()) 
{ 
    cout << "Can not open a capture object." << endl; 
    return -1; 
} 
+0

只是一些明显的问题:是否kinect连接和供电?您是否在没有opencv/openni绑定的情况下尝试过它(例如,运行OpenNI示例等)? –

+0

@GeorgeProfenza Kinect连接并通电。是的,openni示例运行,我甚至自己编译它们并运行它们。只是openCV示例不会 – Aly

回答

0

好的,我有同样的问题。

我解决它再次安装SensorKinect driver(出事了第一次),然后像你描述我安装了OpenCV的2.4.3:

mkdir release 
cd release 
cmake-gui .. 
hit configure 
enabled WITH_OPENNI 
hit configure and then generate 
ran sudo make 

我不得不跑makesudo,否则我是随时都会出错。

和在你到底要干什么

sudo make install 

我的意思是,这是上面的整个过程的意义,不是吗? ;)

0

将这个调试线,cout << cv::getBuildInformation() << endl;,在你的代码,右键前

if(!capture.isOpened()) { cout << "Can not open a capture object." << endl; return -1; }

这将让你知道,如果你的OpenCV的安装与openni。如果交换机,

OpenNI: YES (ver 1.5.4, build 0) OpenNI PrimeSensor Modules: YES (/usr/lib/libXnCore.so)

NO你的情况,那么你可能要考虑与cmake标志-D WITH_OPENNI=ON重新编译OpenCV的模块。

干杯!

相关问题