OpenCV (a través de python) en Linux: ¿Establecer ancho / alto de marco?

Estoy usando openCV a través de python en linux (ubuntu 12.04), y tengo un logitech c920 del cual me gustaría capturar imágenes. Cheese es capaz de capturar fotogramas con resoluciones realmente altas, pero cada vez que trato de usar openCV, solo obtengo 640x480 imágenes. Yo he tratado:

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)

pero esto produce una salida de "0" después de cada una de las dos últimas líneas, y cuando posteriormente tomo un cuadro a través de:

image = cv.QueryFrame(cam)

La imagen resultante sigue siendo 640x480.

He intentado instalar lo que parecían ser herramientas relacionadas a través de (fuera de python):

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

y, de hecho, aparentemente puedo manipular la configuración de la cámara (de nuevo, fuera de python) a través de:

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

y observa que:

v4l2-ctl -V

De hecho sugiere que algo ha cambiado:

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

Pero cuando entro en el shell de python, el código anterior se comporta exactamente igual que antes (imprimiendo ceros al intentar establecer las propiedades y obtener una imagen de 640x480).

Ser capaz de aumentar la resolución de la captura es una misión crítica para mí, por lo que agradecería cualquier sugerencia que alguien pueda proporcionar.

Respuestas a la pregunta(5)

Su respuesta a la pregunta