2012-12-10 2 views
1

J'ai installé OpenNI et SensorKinect en suivant le tutoriel here: et l'exemple de visualiseur fonctionne très bien. J'ai téléchargé et OpenCV 2.4.3 fait ce qui suit:OpenCv: Ne pas ouvrir l'objet de capture pour Kinect

  1. mkdir libèrent
  2. cd version
  3. cmake-gui ..
  4. hit configure
  5. set WITH_OPENNI à tic tac
  6. vérifié qu'il a trouvé des répertoires OPENNI et des primes dir
  7. hit configure et ensuite générer
  8. couru faire

Je puis essayez et exécutez l'exemple de code de OpenCV-2.4.3/samples/openni_capture.cpp

Cependant, je reçois la sortie suivante:

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

Le code correspondant est :

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

quelques questions évidentes: la kinect est-elle connectée et également alimentée? L'avez-vous essayé sans les liaisons opencv/openni (par exemple, les échantillons OpenNI ont-ils été exécutés, etc.)? –

+0

@GeorgeProfenza Kinect est connecté et alimenté. Oui, les échantillons d'openni fonctionnent, je les ai même compilés moi-même et les ai courus. Juste les exemples openCV ne vont pas – Aly

Répondre

0

OK, j'ai eu le même problème.

Je l'ai résolu en installant le nouveau SensorKinect driver (quelque chose a mal tourné la première fois) et j'installé OpenCV comme vous décrit 2.4.3:

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

je devais courir make avec sudo, sinon j'étais obtenir des erreurs tout le temps.

et à la fin vous devez faire

sudo make install 

Je veux dire, c'est le sens de la procédure ci-dessus tout, est-ce pas? ;)

0

Mettez cette ligne de débogage, cout << cv::getBuildInformation() << endl;, dans votre code, juste avant

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

Cela vous permettra de savoir si votre OpenCV est installé avec OpenNI. Si les commutateurs,

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

sont NO dans votre cas, alors vous voudrez peut-être envisager de recompiler vos modules OpenCV avec le drapeau cmake-D WITH_OPENNI=ON.

À la votre!

Questions connexes