我在linux上使用openCV(Ubuntu 12.04),我有一個Logitech c920,我想從中抓取圖像。奶酪能夠抓取高達分辨率的幀,但每當我嘗試使用openCV時,我只能獲得640x480的圖像。我曾嘗試:Linux上的OpenCV(通過python):設置幀的寬度/高度?
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)
所得圖像仍然是640×480。
我試着安裝了似乎通過(蟒蛇外)進行相關的工具:
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時印刷零)行爲完全與以前相同。能夠提高捕獲的分辨率對我來說是非常重要的任務,所以我非常感謝任何人都可以提供的指針。
我在與CV2同樣的問題(OpenCV的2.4.2)。以前,它曾經工作得很好。 – Froyo 2012-07-17 14:52:54
@Froyo:你有什麼版本的opencv和ubuntu工作?我可能只是恢復我的系統得到這個工作... – 2012-07-18 14:16:12
OpenCV 2.3.1和Ubuntu 11.10 – Froyo 2012-07-18 14:22:35