在OpenCV中,有強大的處理相機事件的api,但是貌似沒有直接獲取相機的最大分辨率的函數,通過屬性CV_CAP_PROP_FRAME_HEIGHT和CV_CAP_PROP_FRAME_WIDTH直接獲取的貌似只是默認的分辨率640x480,不過我們可以通過手動設置來修改分辨率,使其可以達到自身所支持的最大的分辨率,設置代碼如下所示:
cv::VideoCapture capture; capture.open(CV_CAP_DSHOW); capture.set(CV_CAP_PROP_FRAME_HEIGHT, 720); capture.set(CV_CAP_PROP_FRAME_WIDTH, 1280);
通過使用Logitech 720D的webcam測試,發現了該相機支持如下的分別率:
1920 1080 1504 832 1280 720 1024 768 960 720 640 480 352 288 320 240 176 144 160 120
注意攝像頭不同,所能支持的分辨率的范圍也就不同,如果隨便設定分辨率的大小,那么它會自動從上面的分辨率中找一個跟你設定的最接近的數值當作攝像頭的分辨率。