OpenCV (via python) sous Linux: définir la largeur / hauteur du cadre?

Je suis en utilisant openCV via python sous linux (ubuntu 12.04), et j'ai un logitech c920 à partir de laquelle je voudrais saisir des images. Le fromage est capable d'acquérir des images à très haute résolutions, mais à chaque fois que j'essaie d'utiliser openCV, je ne reçois 640 x 480 images. J'ai essayé:

import cv
cam = cv.CaptureFromCAM(-1)
cv.SetCaptureProperty(cam,cv.CV_CAP_PROP_FRAME_WIDTH,1920)
cv.SetCaptureProperty(cam,cv.CV_CAP_PROP_FRAME_WIDTH,1080)

mais cela donne de la sortie à "0" après chacune des deux dernières lignes, et quand j'ai par la suite de saisir une image via:

image = cv.QueryFrame(cam)

L'image qui en résulte est encore 640x480.

J'ai essayé d'installer ce qui semblait être des outils liés à la via (en dehors de python):

sudo apt-get install libv4l-dev v4l-utils qv4l2 v4l2ucp

et je ne peux en effet apparemment manipuler les paramètres de la caméra (encore une fois, à l'extérieur de python) via:

v4l2-ctl --set-fmt-video=width=1920,height=1080,pixelformat=1
v4l2-ctl --set-parm=30

et d'observer que:

v4l2-ctl -V

en effet suggère que quelque chose a été changé:

Format Video Capture:
    Width/Height   : 1920/1080
    Pixel Format   : 'H264'
    Field          : None
    Bytes per Line : 3840
    Size Image     : 4147200
    Colorspace     : sRGB

Mais quand je pop dans l'interface python, le code ci-dessus se comporte exactement de la même façon qu'avant (l'impression de zéros lorsque vous tentez de définir les propriétés et l'obtention d'une image de 640 x 480).

Être en mesure de remonter la résolution de la capture est assez essentiel pour moi, alors je serais grandement apprécier tous les pointeurs quelqu'un peut fournir.

source d'informationauteur Mike Lawrence