1. 程式人生 > >OpenCv設定攝像頭引數/獲得攝像頭引數值

OpenCv設定攝像頭引數/獲得攝像頭引數值

希望大家學會分享,你懂得別人未必懂,大家一起學習。

先看效果圖再上程式碼,這是所獲取的攝像頭引數


這是修改了曝光值後的效果:


溫馨提示:想要修改這些引數之前請一定一定一定要記住你攝像頭引數的初始值,因為一旦你修改了這些引數你的攝像頭就被改動了,是無法恢復到初始值的,除非你記得初始引數值,除非特別需要,否則不要隨意修改這些引數。

想獲得更多的引數值請參考:https://baike.baidu.com/item/cvGetCaptureProperty/1637973?fr=aladdin

此種獲得攝像頭引數只限於使用capture開啟攝像頭的方式。有些引數的值無法顯示出來所以這就需要大家的努力了,注意有些人攝像頭的引數無法修改。

#include "stdafx.h"

#include<opencv2/opencv.hpp>
using namespace cv;   
int main()
{
        char c = 0;
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);//亮度 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
*/
//列印攝像頭引數
printf("width = %.2f\n",capture.get(CV_CAP_PROP_FRAME_WIDTH));
printf("height = %.2f\n",capture.get(CV_CAP_PROP_FRAME_HEIGHT));
printf("fbs = %.2f\n",capture.get(CV_CAP_PROP_FPS));
printf("brightness = %.2f\n",capture.get(CV_CAP_PROP_BRIGHTNESS));
printf("contrast = %.2f\n",capture.get(CV_CAP_PROP_CONTRAST));
printf("saturation = %.2f\n",capture.get(CV_CAP_PROP_SATURATION));
printf("hue = %.2f\n",capture.get(CV_CAP_PROP_HUE));
printf("exposure = %.2f\n",capture.get(CV_CAP_PROP_EXPOSURE));
        while (1)
        {
                Mat frame;
capture >> frame;
namedWindow("video");
imshow("video",frame);
                c = cvWaitKey(30);
                if (c == 27)//Esc鍵退出
                {
                        break;
                }
        }
        return 0;
}