OpenCV (через python) в Linux: установить ширину / высоту фрейма?

Я использую openCV через Python на Linux (Ubuntu 12.04), и у меня есть Logitech C920, из которого я хотел бы получить изображения. Cheese может захватывать кадры до действительно высокого разрешения, но всякий раз, когда я пытаюсь использовать openCV, я получаю только 640x480 изображений. Я пытался:

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)

но это приводит к выводу "0" после каждой из последних двух строк, и когда я впоследствии получаю кадр через:

image = cv.QueryFrame(cam)

Полученное изображение все еще 640x480.

Я пытался установить то, что казалось связанными инструментами через (за пределами python):

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

и я действительно могу манипулировать настройками камеры (опять же, вне питона) с помощью:

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

и заметьте, что:

v4l2-ctl -V

действительно предполагает, что что-то изменилось

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

Но когда я захожу в оболочку python, приведенный выше код ведет себя точно так же, как и раньше (печать нулей при попытке установить свойства и получить изображение размером 640x480).

Возможность повышения разрешения захвата очень важна для меня, поэтому я очень ценю любые указатели, которые кто-либо может предоставить.

Ответы на вопрос(5)

Ваш ответ на вопрос