当前位置:   article > 正文

opencv计算图像亮度调节_Opencv学习笔记4:Opencv处理调整图片亮度和对比度

opencv图像亮度计算

一、理论基础

在数学中我们学过线性理论,在图像亮度和对比度调节中同样适用,看下面这个公式:

在图像像素中其中:

参数f(x)表示源图像像素。

参数g(x) 表示输出图像像素。

参数a(需要满足a>0)被称为增益(gain),常常被用来控制图像的对比度。

参数b通常被称为偏置(bias),常常被用来控制图像的亮度。

二、获取图像像素

opencv中图像数据是存放在Mat数据类型中,我们知道一个像素有rgb构成,所以Mat是个三维数组,一下就是简单的获取mat中图像像素。

//三个for循环,执行运算 new_image(i,j) =a*image(i,j) + b

for(int y = 0; y < image.rows; y++)

{for(int x = 0; x < image.cols; x++)

{for(int c = 0; c < 3; c++)

{

new_image.at(y,x)[c]= saturate_cast( (g_nContrastValue*0.01)*(image.at(y,x)[c] ) +g_nBrightValue );

}

}

}

上述代码中image.at(y,x)[c] 其中,y是像素所在的行, x是像素所在的列, c是R、G、B(对应0、1、2)其中之一。

saturate_cast为了安全转换

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小桥流水78/article/detail/885138
推荐阅读
相关标签
  

闽ICP备14008679号