Я использую openCV через python на linux (ubuntu 12.04), и у меня есть logitech c920, из которого я хотел бы захватить изображения. Сыр способен захватывать рамки до действительно высокого разрешения, но всякий раз, когда я пытаюсь использовать 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
и я действительно могу манипулировать настройками камеры (опять же, вне python) с помощью:
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).
Возможность поднять разрешение захвата довольно важна для меня, поэтому я бы очень признателен за любые указатели, которые любой может предоставить.