1. 程式人生 > >關於opencv更改攝像頭引數(幀率,解析度,曝光度……)的幾個問題

關於opencv更改攝像頭引數(幀率,解析度,曝光度……)的幾個問題

1,適用於VideoCapture開啟的攝像頭

VideoCapture capture(0); 設定攝像頭引數 不要隨意修改

capture.set(CV_CAP_PROP_FRAME_WIDTH, 1080);//寬度

capture.set(CV_CAP_PROP_FRAME_HEIGHT, 960);//高度

capture.set(CV_CAP_PROP_FPS, 30);//幀率 幀/秒

capture.set(CV_CAP_PROP_BRIGHTNESS, 1);//亮度 

capture.set(CV_CAP_PROP_CONTRAST,40);//對比度 40

capture.set(CV_CAP_PROP_SATURATION, 50);//飽和度 50

capture.set(CV_CAP_PROP_HUE, 50);//色調 50

capture.set(CV_CAP_PROP_EXPOSURE, 50);//曝光 50 獲取攝像頭引數

得到攝像頭的引數

capture.get(CV_CAP_PROP_FRAME_WIDTH);

capture.get(CV_CAP_PROP_FRAME_HEIGHT);

capture.get(CV_CAP_PROP_FPS);

capture.get(CV_CAP_PROP_BRIGHTNESS);

capture.get(CV_CAP_PROP_CONTRAST);

capture.get(CV_CAP_PROP_SATURATION);

capture.get(CV_CAP_PROP_HUE);

capture.get(CV_CAP_PROP_EXPOSURE); 獲取視訊引數:

capture.get(CV_CAP_PROP_FRAME_COUNT);//視訊幀數 

然後你會發現除了個別引數你能更改之外(如曝光度),大分佈你是不能更改的,甚至都沒辦法得到,這種並不適用

2,不做開發,只是單純的更改

3,修改opencv的檔案,不過效果可能和第一個差不多

大概是在opencv的這個位置,找一下,modules/highgui/src/cap_v4l.cpp,裡面有關於引數的設定,位置比較靠前,可以搜尋,也可以直接找到

4,v4l2

下面是我找到的一篇參考,可以突破幀率的限制,當然前提是攝像頭支援