图像亮度调整分为非线性和线性两种方法。
非线性图像亮度是将图像像素的R、G、B分别加上或减去某个值,其优点是代码简单,亮度调整速度快;缺点是图像信息损失较大,调整过的 图像显得平淡,无层次感(可参见《GDI+ 在Delphi程序的应用 -- 调整图像亮度》)。
线性图像亮度一般是将图像像素的RGB转换为HSL(HSV)等颜色空间,对L(V)部分进行增减调整后,再转换为RGB颜色空间,优点是调整过图像层次感很强;缺点是代码较复杂,调整速度慢,而且当图像亮度增减量较大时有很大的失真(可参见《GDI+ 在Delphi程序的应用 -- 线性调整图像亮度》)。
针对上面两种方法的优缺点,本人参照Photoshop的对比度、饱和度调整原理(可参见本人的有关文章),对图像亮度调整方法进行了改进,经测试,效果还不错:主要有不失真调整范围宽、有较好的层次感、尽可能减少图像信息损失量、运算速度较快及代码也不太复杂等。
下面是图像线性亮度调整C/C++代码(使用C++ Builder编译器和GDI+库):
上面写了3段亮度调整代码,都是采用整型运算。其中LinearBrightness_div是正儿八经的原理代码,其它2种方法都是为了加快运算速度,而采用的简化原理。
原理用公式表示为:
如果亮度增减量value范围为 -1 -- +1,当value > 0时:
rgb = RGB + RGB * (1 / (1 - value) - 1)
当value < 0时:
rgb = RGB + RGB * value
3个函数在我的机器上对10000K像素照片进行速度测试比较:采用除法运算LinearBrightness_div函数为734ms,采用移位运算LinearBrightness_shl函数为266ms,而用插入汇编的LinearBrightness_asm函数速度则为156ms。
下面是用RGB非线性亮度调整(中)、HSL线性亮度调整(右)以及本文介绍的改进线性亮度调整方法(左)对同一照片的调整结果贴图:
原图:
如有错误,可来信指正,并请提出建议:maozefa@hotmail.com
分享到:
相关推荐
数字图像处理,实现图像非线性调节亮度的Python实现,
研究了两种常用的局部线性特征编码方法即LLC及NSLLC编码方法,并针对其存在的问题提出了一种利用编码系数非负性约束对其进行改进的方法——NNLLC,并将其应用于图像分类任务中。实验结果表明,该方法能有效改进局部...
灰度线性变换是最常⽤的图像点运算之⼀,将图像的像素值通过指定的线性函数进⾏变换,以此增强或减弱图像的灰度。 程序主要实现以下功能 1) 显示原始图像,并求其原始图像的直方图 2) 通过⼀维线性函数增强对比度,...
取一幅真实的图像,对其进行线性点运算,即GB=f(GA)= αGA +β取(α,β)分别为(1.5 , 1.2)、(0.7 , 1.2)对原图像进行线性运算,观察处理后的结果,并对其进行分析,打印相应的直方图,分析直方图发生的变化
提出一种对红外图像采用非线性变换分段直方图的增强方法,该方法对红外图像进行非线性变换,提高较暗区域的像素亮度,根据前背景区域特征将直方图分成两段,进行双直方图均衡化处理,对前景和背景分别进行图像的增强...
OFDM系统中一种改进的线性内插方法,李星星,景晓军,在OFDM系统中,信道估计的性能制约着接收机相干解调的可靠性。线性内插是基于导频的信道估计中一个重要步骤,本文结合时间序列分��
图像线性插值Verilog代码,已通过FPGA验证(Image linear interpolation Verilog code, has been verified by FPGA)
一副图像逆时针旋转60°,采用双线性插值的方法
可以调节图像的明暗程度,增强区域的对比度,同时给出了一种选择最优参数的方法"通过调整直方图均衡化后像素的灰度值,给出了保留灰度级的直方图均衡化方法,丰富了图像的灰度层次,一定程度上消除了灰阶合并现象对图像...
内有使用开源类库opencv做的图像线性融合的程序,适合初学opencv的同学学习
为了改善图像融合的质量和效率,提出了一种非线性加权的图像融合算法。首先计算图像的非线性加权值,并采用金字塔高斯对图像进行平滑处理,然后对原图和平滑后图像融合,得到图像融合结果,最后采用仿真实验对算法...
基于opencv,利用线性插值的方法进行图像放大,放大的比例可以自行设定
图像亮度增强,采用各种非线性函数变换,包括幂函数、指数函数、对数函数等等,以及直方图均衡化方法。
主要是用于图像增强的,效果还行;是通过分段线性增强的方法去对图像进行处理的,是比较传统的方法,初学者可以在其基础上进行改进并加以使用
本程序提供了图像经典的线性变换源代码,可以调试运行,对图像处理有很好的参考作用,读者可以直接下载使用。
针对小样本数据搭建的多元线性回归模型的异方差性影响,提出一种基于Adaboost的改进多元线性回归算法,该算法利用Adaboost算法动态调整不同样本对应的权值因子,并协调和组合各多元线性回归模型,在减弱异方差性影响的...
matlab 实现图像 灰度分段线性处理 具有交互界面,可直接运行
retinex雾天彩色图像处理,采用matlab软件编写,同时采用线性拉伸的方法对rgb图像处理达到去雾是图像清晰化效果
用python实现论文中的亮度调整方法,原参考网址是使用matlab完成的。当然,在python中我没有找到matlab中的高斯滤波的完全替代方法,但是影响不大,效果还是很好的。