“大脑”生长系列(五)

  • 2020 年 4 月 10 日
  • 筆記

上一篇我们介绍了改变图像大小的方法,今天我们来介绍一下如何通过OpenCV来改变图像的亮度和对比度。

亮度:亮度是指发光体(反光体)表面发光(反光)强弱的物理量。一个比较抽象的解释,哈哈。

对比度:对比度指的是一幅图像中明暗区域最亮的白和最暗的黑之间不同亮度层级的测量,差异范围越大代表对比越大,差异范围越小代表对比越小。还是比较抽象,哈哈。

这么抽象,还是先不管他了,我们来看看OpenCV提供了什么样的接口(Mat类的一个方法):

void convertTo( OutputArray m, int rtype, double alpha=1, double beta=0 ) const

参数说明:

m: 转换后的目标图像

rtype:转换后的目标图像的数据格式(默认与原图一致)

alpha:亮度的调整参数

beta:对比度的调整参数

代码演示

int main(int argc, char *argv[])  {   //调整对比度和亮度   Mat src = imread("3.jpg");   Mat des2;   src.convertTo(des2, -1, 2.0, 50);   namedWindow("src");   namedWindow("des2");   imshow("src", src);   imshow("des2", des2);   waitKey(0);   return 0;  }

源图

更改亮度对比度后的图