Я установил OpenNI и SensorKinect, следуя инструкциям Вот: и просмотрщик примеров работает просто отлично. Я скачал OpenCV 2.4.3, а затем сделал следующее:
Затем я пытаюсь запустить пример кода из 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;
}
ОК, у меня была такая же проблема.
Я решил это, установив SensorKinect драйвер снова (что-то пошло не так в первый раз), а затем я установил OpenCV 2.4.3, как вы описали:
mkdir release
cd release
cmake-gui ..
hit configure
enabled WITH_OPENNI
hit configure and then generate
ran sudo make
Я должен был бежать make
с sudo
иначе я все время получал ошибки.
И в конце вы должны сделать
sudo make install
Я имею в виду, в этом смысл всей процедуры выше, не так ли? 😉
Поместите эту строку отладки, 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
в вашем случае вы можете подумать о перекомпиляции ваших модулей opencv с cmake
флаг -D WITH_OPENNI=ON
,
Ура!