1

我已经按照这里的教程安装了 OpenNI 和 SensorKinect :并且示例查看器工作得很好。我已经下载了 OpenCV 2.4.3,然后执行了以下操作:

  1. mkdir 发布
  2. 光盘发行
  3. cmake-gui ..
  4. 点击配置
  5. 将 WITH_OPENNI 设置为勾选
  6. 检查它是否找到了 OPENNI dirs 和 primesense dir
  7. 点击配置然后生成
  8. 跑了

然后我尝试运行 OpenCV-2.4.3/samples/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;
}
4

2 回答 2

0

好的,我有同样的问题。

我通过再次安装SensorKinect 驱动程序解决了这个问题(第一次出了点问题),然后我安装了 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

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

于 2013-06-21T16:22:55.367 回答
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您的情况下,那么您可能需要考虑使用cmakeflag重新编译您的 opencv 模块-D WITH_OPENNI=ON

干杯!

于 2015-07-27T16:01:12.887 回答