2010-07-14 8 views
2

J'essaie de capturer à partir d'un Sony Handicam DCR-HC38, en exécutant le code ci-dessous, et en passant [-1 .. 3] à la fonction CaptureFromCAM. Le code fonctionne, mais je n'ai pas d'image. Dois-je "envelopper" l'appareil photo d'une manière ou d'une autre? Skype reconnaît la caméra, mais pas python/opencv. Je cours Windows Vista si cela aide tout.python opencv: aucune image

import cv 

cv.NamedWindow("camera", 1) 

capture = cv.CaptureFromCAM(-1) 

while True: 
    img = cv.QueryFrame(capture) 
    cv.ShowImage("camera", img) 
    if cv.WaitKey(10) == 27: 
     break 
+0

img = cv.QueryFrame (capture) doit être testé si img a effectivement une valeur ou est None. – Photodeus

Répondre

3

essayer d'augmenter le retard sur le cv.WaitKey

2

ne sais pas si vous fixe ou non. Mais la solution que j'ai trouvée est de vérifier quel pilote OpenCv essaie d'accéder ... J'ai à la fois v4l1 et v4l2, mais je ne peux accéder au périphérique/dev/video0 qu'en utilisant le codec gstreamer et le pilote v4l2 sur mon lenovo x200 (interne webcam) en utilisant ubuntu 10.10. Donc, je devais recompiler OpenCV de la source, en appliquant tout d'abord le patch à l'adresse:

Opencv-2.0.0.link.v4l2.patch

extrait le patch à votre OpenCV répertoire racine: Terminal puis ouvrez et cd dans le répertoire racine de OpenCV, et procédez comme suit :

patch -p0 <OpenCV-2.0.0-link-v4l2.patch 

alors:

make 
make install 

maintenant vos bibliothèques OpenCV devrait accéder au pilote v4l2 à la place, espérons que cela aide certains un

Questions connexes