希望大家学会分享,你懂得别人未必懂,大家一起学习。
先看效果图再上代码,这是所获取的摄像头参数
这是修改了曝光值后的效果:
温馨提示:想要修改这些参数之前请一定一定一定要记住你摄像头参数的初始值,因为一旦你修改了这些参数你的摄像头就被改动了,是无法恢复到初始值的,除非你记得初始参数值,除非特别需要,否则不要随意修改这些参数。
想获得更多的参数值请参考: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;
}