opencv亮度对比度调节

一:对比度亮度调节的原理

g(x)=a*f(x)+b;

参数f(x)是输入图像的像素值,g(x)是输出图像的像素值

a(a>0)称为增益,用来调整图像的对比度(拉大两个像素之间的差值)

b为偏置,用来调整亮度opencv亮度对比度调节

saturate_cast是用来防止溢出的,当像素点值大于255时让像素值变为255,<uchar>指的是无字符单通道,<vec3b>指的是uchar3通道。

效果图如下

opencv亮度对比度调节



二 通道分类与合并



opencv亮度对比度调节

split(输入图,通道向量);//通道分离

merge(通道向量,输出图);//通道合并

vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间的目的.

vector<Mat>channels;相当于是Mat类的一个一维数组channels[]用来存放通道的像素值

CV_EXPORTS void split(const Mat& m, vector<Mat>& mv );//vector<Mat>& mv相当于数组的首地址