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

本文介绍了如何使用OpenCV通过线性变换调节图像的亮度和对比度,包括理论基础、获取图像像素的方法、示例代码及改进方案。通过创建轨迹条动态调整对比度和亮度,实现对图像的实时处理。最后,展示了使用`convertTo`函数提高处理效率的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、理论基础

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

在图像像素中其中:

参数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为了安全转换

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值