L'accaparement des Images d'une Webcam pour être utilisé avec OpenCV
C'est un suivi à ma question précédente,
Quelqu'un peut-il suggérer une bibliothèque qui me permettrait d'acquérir des images de la caméra sans trop de chichi (comme la vidéo videoinput lib pour windows) et de les transmettre à opencv dans mon application?
- Vous êtes probablement mieux de trouver la raison de openCV ne fonctionne pas avec votre webcam et de tout autre lib est susceptible d'utiliser la même V4L couche
- si vous me lisez prev question everyother application qui utilise v4l fonctionne sauf opencv.
Vous devez vous connecter pour publier un commentaire.
J'ai eu un parallèle problème à l'aide d'un de complètement différent de la webcam: bien fonctionné dans le fromage, etc,
v4l-info
a montré la configuration correcte, mais openCV échouerait avec:HIGHGUI ERROR: V4L2: Pixel format of incoming image is unsupported by OpenCV
Unable to stop the stream.: Bad file descriptor
Après beaucoup de gesticulations, j'ai trouvé que au moins un mec eu des problèmes similaires avec des webcams dans diverses applications.
Dans la foi aveugle, j'ai rapidement reçu un coup de poing
export LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so
et «pouf» il a travaillé.La openCV v4l2 interface n'est pas aussi robuste que le v4l mise en œuvre et de l'exportation est un moyen rapide de solution de contournement (openCV semble revenir à v4l).
Avec une navigation rapide de
opencv/modules/highgui/src/cap_v4l.cpp
il semblerait openCV souhaitez utiliser v4l2.Je suis sur Ubuntu Lucid 2.6.32-28-generic x86_64, de libv4l-0 v0.6.4-1ubuntu1 avec openCV tiré à partir de la TÊTE de l'opération il y a quelques jours.
Dans le cadre d'expliquer ce que j'ai résolu mon problème. Il s'avère que openCV forces de la résolution sur un v4l2 appareil à 640x480 par défaut - et mon appareil avait un max de 320 x 240 résolution qui a provoqué l'erreur lors de l'essai pour le type de format dans
opencv::highgui::cap_v41::try_palette_v4l2
. J'ai changé DEFAULT_V4L_WIDTH et DEFAULT_V4L_HEIGHT.export LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so
travaillé! +1