一、创乐博相机
相机类型 : 创乐博
调参数据对象:宽度(Width),高度(Height),色调(Hue)、饱和度(Saturation)、明度(Value)、对比度(Contrast)、帧率(Fps), 曝光时长(Exposure)一共八个数据对象。
能调节的有:色调,饱和度,明度,对比度,帧率,一种五个。
基础调参代码:
功能:对以上八个数据类型进行调整
#include<iostream>
#include<opencv2\opencv.hpp>
using namespace std;
using namespace cv;
void display1(VideoCapture capDevice)
{
double width = capDevice.get(cv::CAP_PROP_FRAME_WIDTH);//宽度
double height = capDevice.get(cv::CAP_PROP_FRAME_HEIGHT);//高度
double hue = capDevice.get(cv::CAP_PROP_HUE);//色调
double saturation = capDevice.get(cv::CAP_PROP_SATURATION);//饱和度
double bright = capDevice.get(cv::CAP_PROP_BRIGHTNESS);//亮度
double contrast = capDevice.get(cv::CAP_PROP_CONTRAST);//对比度
int fps = capDevice.get(cv::CAP_PROP_FPS);//帧率 帧/秒
double exposure = capDevice.get(cv::CAP_PROP_EXPOSURE);//曝光时长
cout << "\n宽度: " << width << "\n高度:" << height << "\n色调:" << hue << "\n饱和度:" << saturation << "\n亮度:" << bright << "\n对比度:" << contrast << "\n帧率:" << fps << "\n曝光时长:" << exposure << endl << endl;
}
int main()
{
Mat src = imread("D:/imagic/14.jpg");
if (src.empty())//如果加载不到图片则返回-1,表示不正常退出
{
cout << "could not load image..." << endl;
return -1;
}
VideoCapture capDevice;
capDevice.open(1);//打开外置摄像头
display1(capDevice);
capDevice.set(CAP_PROP_FRAME_WIDTH, 480.0);
capDevice.set(CAP_PROP_FRAME_HEIGHT, 640.0);
capDevice.set(CAP_PROP_HUE, 40);//色调40
capDevice.set(CAP_PROP_SATURATION, 60);//饱和度 60
capDevice.set(CAP_PROP_BRIGHTNESS, 60);//亮度 60
capDevice.set(CAP_PROP_CONTRAST, 60);//对比度 60
capDevice.set(CAP_PROP_FPS, 30);//帧率 30帧/秒
//注:帧率不能直接得到,得经过一些操作才行。有兴趣可以看着篇博客:
capDevice.set(CAP_PROP_EXPOSURE, 0);//曝光 0
display1(capDevice);
//注:摄像机调整之后的属性就会固定下来,下次连接的时候是显示上一次调整好的属性
Mat srcImage;
while (true) {
if (capDevice.isOpened())
{
capDevice >> srcImage;
}
imshow("image", srcImage);
if (waitKey(30) == 27)break;
}
capDevice.release();
}
调参进阶:
设置鼠标响应事件来动态调整各项参数。
优点:
-
对相机各项参数调整造成的图像改变有更直观的理解。
-
提高调参找出相对最参数的效率。
-
便于比对出最优参数。
-
测试相机调参范围。
未完待续。。。我必不太监好伐