改进的图像线性亮度调整算法

阿发伯 2009-08-31 10:30:04
加精
图像亮度调整分为非线性和线性两种方法。

非线性图像亮度是将图像像素的R、G、B分别加上或减去某个值,其优点是代码简单,亮度调整速度快;缺点是图像信息损失较大,调整过的 图像显得平淡,无层次感(可参见《GDI+ 在Delphi程序的应用 -- 调整图像亮度》)。

线性图像亮度一般是将图像像素的RGB转换为HSL(HSV)等颜色空间,对L(V)部分进行增减调整后,再转换为RGB颜色空间,优点是调整过图像层次感很强;缺点是代码较复杂,调整速度慢,而且当图像亮度增减量较大时有很大的失真(可参见《GDI+ 在Delphi程序的应用 -- 线性调整图像亮度》)。

针对上面两种方法的优缺点,本人参照Photoshop的对比度、饱和度调整原理(可参见本人的有关文章),对图像亮度调整方法进行了改进,经测试,效果还不错:主要有不失真调整范围宽、有较好的层次感、尽可能减少图像信息损失量、运算速度较快及代码也不太复杂等。

下面是用RGB非线性亮度调整(中)、HSL线性亮度调整(右)以及本文介绍的改进线性亮度调整方法(左)对同一照片的调整结果贴图:

原图:


具体算法公式和代码实现请见我的BLOG文章,文章前面是C/C++实现代码,后面是Delphi实现代码,欢迎大家提出意见:
改进的图像线性亮度调整方法
...全文
4786 79 打赏 收藏 转发到动态 举报
写回复
用AI写文章
79 条回复
切换为时间正序
请发表友善的回复…
发表回复
dianshmily 2011-08-10
  • 打赏
  • 举报
回复
请问,photoshop中亮度调整算法到底是哪种啊? 多谢了!
michaelnami 2009-09-14
  • 打赏
  • 举报
回复
什么意思
phisherr 2009-09-02
  • 打赏
  • 举报
回复
v每天回帖即可获得10分可用分!
fldx 2009-09-02
  • 打赏
  • 举报
回复
每天回帖即可获得10分可用分!
流梓 2009-09-02
  • 打赏
  • 举报
回复
强人,从中收获了。
songtreer 2009-09-02
  • 打赏
  • 举报
回复
学习
myshinji 2009-09-02
  • 打赏
  • 举报
回复
果然是美女啊
sunxing007 2009-09-02
  • 打赏
  • 举报
回复
强人。
zhuang_bx 2009-09-02
  • 打赏
  • 举报
回复
学习
liu498097420 2009-09-02
  • 打赏
  • 举报
回复
好东西。
lhy 2009-09-02
  • 打赏
  • 举报
回复
重要的是:调亮以后再调暗,能还原出原来图像吗?
de410 2009-09-02
  • 打赏
  • 举报
回复
学习了~~
  • 打赏
  • 举报
回复
mark 下班回家好好看 很感兴趣 谢谢分享
aloneone 2009-09-02
  • 打赏
  • 举报
回复
收藏
ZCH611407 2009-09-02
  • 打赏
  • 举报
回复
好东西!
看来楼主很厉害啊!
zzmoutmans 2009-09-02
  • 打赏
  • 举报
回复
很好
lim_5258 2009-09-02
  • 打赏
  • 举报
回复
正找呢 可惜是正则表达式写的 看不明白
bugs2k 2009-09-01
  • 打赏
  • 举报
回复
学习学习
CyberLogix 2009-09-01
  • 打赏
  • 举报
回复
不错
luxuewei5214 2009-09-01
  • 打赏
  • 举报
回复
好久不见了,阿发伯,呵呵
加载更多回复(57)

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi GAME,图形处理/多媒体
社区管理员
  • GAME,图形处理/多媒体社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧