摄像头一些参数的调节经验
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了摄像头一些参数的调节经验相关的知识,希望对你有一定的参考价值。
参考技术A 一、增益摄像机基本设置说明: AGC (自动增益控制):
摄像头内有一个将来自CCD的信号放大到可以使用水准的视频放大器,其放大即增益。
具有AGC功能的摄像机,在低照度时增益变大,灵敏度提高,但此时 噪声 也会比较明显
在低亮度条件下应该完全打开镜头光圈,以获得清晰的图像。
//---------通俗说法--------------------------
增益是摄像机传感器接收到原始景物的光后,在光电转换过程中,对原始的光进行调大或调小的过程。如果这时是增益调大了,我们的图象就会比实际的亮,相反就会更暗。 如果传感器很小或质量不是很好,增益后就有很多的噪点。
二、曝光
可看一下这个链接
https://zhuanlan.zhihu.com/p/24490236
曝光的三要素: 光圈,快门、感光度( ISO )
帧率:决定单位时间内拍多少次(多少帧)
曝光时间: (也叫快门速度) 决定每次拍摄(一帧)用多少时间来曝光,影响在一段时间内的“累计”光通量
值得注意的是,曝光时间过长,会导致每一帧所用的时间过长,造成图像卡顿
感光度确定的情况下,光圈大小和快门速度(曝光的时间长短)决定了曝光量的大小。光圈不变的情况下,曝光时间越长,曝光量越大;曝光时间不变的情况下,光圈越大,曝光量越大。曝光量一定的情况下,增加一级光圈,就必须减少一级曝光时间,反之亦然。
“ 高速摄影 ” ,就是拍摄速度很快,曝光时间很短的一种摄影方法。使用非常快的快门速度来捕捉图像的技术,最常用于那些通常情况下人眼无法看到的场景的拍摄。
曝光时间越长,进光量越多,就会有更多时间的图像出现在同一帧上。
比如:在曝光时间内跑步者由A运动到B点,一帧图像会把跑步者由A运动到B点的过程记录下来。
因此曝光时间越长,一帧图像上的跑步者运动的过程就越长,
因此被拍摄的跑步者就会变模糊。
而如果曝光时间很短, 一帧图像 中的跑步者在这个曝光时间内运动的过程也会很短,图像也就越清晰。高速摄影也是这个原理
三、光圈光圈是摄像机镜头张开的口子。如果光圈值是大的,那镜头张开的口子就是小的,相反,光圈值是小的,镜头张开的口子就是大的,得到的光就会多,所拍的对象会更亮甚至曝光过度。我们就是用这个原理来调整摄像机的曝光度,使之符合我们的要求。光圈越大,图像越明亮。
四、白平衡
彩色相机内部有三个CCD电子耦合元件,分别用来感受红绿蓝三中颜色的光线,默认情况下,三个颜色的感光电路信号的放大比例是1:1:1的。在理想的拍摄环境下,纯白色的RGB分量按照1:1:1的比例放大之后,得到的是没有偏色的白色,当在非理想的环境光条件下,白色成像出来的效果会偏向环境光的颜色,而不是纯白色。
相机的自动白平衡就是要通过改变RGB感光电路信号的放大比例,让 受环境光影响的白色还原成纯白色,保证在各种光线条件下,成像色彩跟物体真实的色彩保持一致 。
简单来说,就是让图像的颜色更符合真实情况
一个简单白平衡算法:
https://blog.csdn.net/dcrmg/article/details/53545510
可以去雾的白平衡算法: https://blog.csdn.net/grafx/article/details/69938705
其他 :
对焦是摄像机调整焦距,如果焦距不正确,所拍的画面就会模糊,焦距调对了,图像就会清晰。变焦是摄像机推拉镜头的过程,比如把远处目标拉近来拍摄等。
Opencv调整曝光
惯例先放效果:
左上角代表曝光的参数,一般-10~ -3 再大基本就太亮了……
首先要确定一下使用的摄像头能否调整曝光… 不是所有的摄像头都支持调节曝光!
1.看看摄像头能否调节曝光
下载打开Amcap,选中特定摄像头,Options--Video Device--Properties--看看第二栏摄像机控制里是否可以调整曝光…
如果可以,那么基本就可以被Opencv控制调节曝光了
2.配置好Opencv调节
配置环境见: 地址
简单粗暴的代码如下:
#include <opencv2/opencv.hpp>
#include<iostream>
using namespace cv;
using namespace std;
int main()
VideoCapture cap(0);
Mat frame;
//cap.set()
auto i = cap.get(CV_CAP_PROP_EXPOSURE);
cout << "设置之前曝光为:" << i << endl;
int 循环调节 = 0;
while (waitKey(30)!=27)
循环调节++;
循环调节 %= 80;
//cout << "设置之后曝光为:" << cap.get(CAP_PROP_EXPOSURE);
cap.set(CV_CAP_PROP_EXPOSURE, (循环调节/10)-10);
//cout << "设置之后曝光为:" << cap.get(CAP_PROP_EXPOSURE)<<endl;
cap >> frame;
putText(frame, "Exposure:" + to_string(循环调节 / 10 - 10), Point(20, 30), 3, 1.0, Scalar(255, 0, 0));
imshow("调用摄像头", frame);
return 0;
偶然需要调整摄像头参数来着,所以顺手写了篇博客~~
Opencv使用愉快~
以上是关于摄像头一些参数的调节经验的主要内容,如果未能解决你的问题,请参考以下文章