2010-10-31 4 views
1

Lorsque j'effectue un cvQueryFrame sous Windows, l'API bloque jusqu'à ce qu'une image soit livrée. Sur Mac OS X, je suis à 100% de l'utilisation du processeur, en ne demandant qu'une image et en l'affichant dans une fenêtre. Je suis à la dernière version de SVN. Quelqu'un peut-il confirmer mon expérience? Est-ce que je fais quelque chose de mal? Y at-il un travail autour?OpenCV 'cvQueryFrame' non bloquant sur OS X?

Mon code de boucle ressemble à ceci:

while(key != 'q') { 
    if (frame) 
     cvShowImage("Live Cam", frame); 
    frame = NULL; 
    frame = cvQueryFrame(capture); 
    key = cvWaitKey(10); 
} 

Répondre

1

Je viens exécuté une application de démonstration que je presented here et utilise ~ CPU 22%, selon Activity Monitor. J'ai couru le programme sur un Macbook Pro 13" , avec OpenCV 2.1 (32bits)

Si vous faites attention à ce code, vous remarquerez que la boucle est un peu différente de la vôtre.

IplImage* frame = NULL; 
char key = 0; 
while (key != 27) // ESC 
{  
    frame = cvQueryFrame(capture); 
    if(!frame) 
    { 
     fprintf(stderr, "!!! cvQueryFrame failed!\n"); 
     break; 
    } 

    cvShowImage("Live Cam", frame); 
    key = cvWaitKey(10); 
} 
+0

Très étrange, mais merci beaucoup, j'ai probablement vérifié une mauvaise version. – partel