2012-06-04 6 views
1

J'ai construit un simple enregistreur de webcam sur Linux qui fonctionne très bien. Je reçois ~ 25fps vidéo et un bon son. Je porte l'enregistreur sur Windows (win7) et pendant qu'il fonctionne, il est inutilisable. La fonction QueryFrame prend plus de 350 ms, c'est-à-dire 2,5fps.QueryFrame très lent sur Windows

Le code est en python mais le problème semble vraiment être l'appel lib.

J'ai testé sur la même machine avec la même webcam (un logitech E2500). Sur Windows, j'ai installé openCV v2.2. Je ne peux pas vérifier maintenant mais la version pourrait être un peu plus haute sur Ubuntu.

Une idée de ce qui pourrait être le problème?

edit: Je viens d'installer openCV2.4 et j'ai la même vitesse lente.

Répondre

1

Si le problème est vraiment sur QueryFrame Je soupçonne que ce qui suit peut se produire: le pilote de Windows pour votre appareil photo récupère les images dans un format qui n'est pas supporté nativement par OpenCV, donc OpenCV est obligé de convertir les images en format qu'il comprend. Cette opération consomme du CPU et vous remarquerez une perte de performance si la taille des trames est grande.

Pour des fins de test, vous pouvez:

1) Définir une taille plus petite pour les cadres et voir si elle améliore les performances:

cvSetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH, 320); 
cvSetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT, 240); 

2) Utilisez un autre appareil photo et voir si le problème disparaît. Une fois que vous avez déterminé que c'est vraiment ce qui se passe, essayez de trouver une mise à jour pour le pilote et espérer qu'il résout le problème, ou arrêtez d'utiliser Windows. =)

+0

@karlphilip: 'ou arrêtez d'utiliser Windows' ... J'aime ça :). Au fait, lequel utilisez-vous? Feutre? Ubuntu? –

+0

Fedora/Ubuntu/Mac OS X. Mais j'ai quelques machines virtuelles Windows pour tester mes applications multi-plateformes. Et toi? – karlphillip

+0

@karlphilip: Habituellement fedora. Windows rarement. –

1

J'ai eu le même problème et j'ai découvert que cela est causé par une exposition prolongée. Il se peut que les pilotes Windows aient augmenté l'exposition pour augmenter la luminosité de l'image. Essayez de diriger votre appareil photo vers la source lumineuse ou réglez manuellement une exposition réduite