浅谈GAMMA校正

浅谈GAMMA校正浅谈GAMMA校正做图像处理时需要弱化光照影响。发现Gamma校正有效果,但也仅限于知道有这个指数关系,查阅了一些博客和网站,现整理如下。1关于人眼和计算机人眼对暗部细节比较敏感。人眼不同于摄像机,接收光子来感知光线。比如:在一间小黑屋中每增加一盏灯,摄像机都能线性增加亮度。但是人眼在黑暗时增加一盏灯时感受明显,往后随着灯的个数增长人眼并不会有明显感受。如果将实验做成图表,如下图…

大家好,又见面了,我是你们的朋友全栈君。

浅谈GAMMA校正

做图像处理时需要弱化光照影响。发现Gamma校正有效果,但也仅限于知道有这个指数关系,查阅了一些博客和网站,现整理如下。


1 关于人眼和计算机

  1. 人眼对暗部细节比较敏感。

    人眼不同于摄像机,接收光子来感知光线。比如:在一间小黑屋中每增加一盏灯,摄像机都能线性增加亮度。但是人眼在黑暗时增加一盏灯时感受明显,往后随着灯的个数增长人眼并不会有明显感受。如果将实验做成图表,如下图所示,蓝色为人眼紫色为摄像机。
    img
    这种特性有一个生物学原因:它使我们的视野能够在更广泛的亮度范围内运行。否则,我们在户外遇到的典型亮度范围将太大。参考以下三图,第一幅为原始图,第二幅为 5 bits 线性编码的图像,第三幅为 5 bits Gamma编码的图像。
    smooth 8-bit gradient (256 levels)
    linearly encoded gradient
    gamma encoded gradient
    一方面,可以看出Gamma编码后的图像相比于线性编码的图像,明显有更多的暗部色阶。这是不是说明了人和数学的和谐统一?Gamma编码刚好满足了人眼对暗部细节敏感的特性。另一方面,Gamma编码后的图像色阶更均匀,可以去测试线性和Gamma编码的直方图对比也曾现出均匀分布的特性。

  2. 计算机中的图片存储和显示通常为 8 bit,也就是256个色阶。

真实自然界图像 >> 图像存储 > 显示器输出 < 人眼接受 ,通过上述两点,受限于当下有限的存储和显示,需要在图像的转移(处理)过程中尽可能保留暗部细节,用以满足人眼的暗部敏感需求。


2 Gamma 工作流程

物理显示设备上luminance的生成,通常和它输入的信号不成正比的,存在非线性的关系。例如传统的CRT电视或显示器上,是通过电子枪的发射高速电子,投射在电视平面的荧光粉上使之发光,而通过不同输出电压来调节电子束功率,就可以调节显示的Luminance。但因为电压的幂定律( power-law)响应的缘故(心理物理量和物理量并不成线性增长关系,而是幂函数的形式)。最终显示的在屏幕上的效果受电压影响大概是原理的Power 2.5左右(通常是2.35到2.55之间) 。而这个Power函数的指数数值,就是我们俗称的gamma。记作: I ∝ V s γ I \propto V_{s}^{\gamma} IVsγ

如下图所示:

img

Gamma校正工作流程其实就是一个简单的图像复现过程,因为前面提到的两个问题,所有存储时先进行Gamma压缩在显示时在Gamma还原。最后 G a m m a = = 1 \mathrm{Gamma == 1} Gamma==1

如下图所示,对输入信号做一次关于gamma的逆处理( 1 / g a m m a = 1 / 2.2 = 0.45 ) \mathrm{1/gamma = 1/2.2 = 0.45)} 1/gamma=1/2.2=0.45)),这样两个非线性的相逆的曲线使得最终的输出成为线性。

600px-GammaFunctionGraph_svg.png

流程参考该图:

img

Ref

[1-Cn Blog][https://www.cnblogs.com/TracePlus/p/4168447.html]
[2][http://www.cambridgeincolour.com/tutorials/gamma-correction.htm]

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/148591.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 解释afterPropertiesSet

    在spring的bean的生命周期中,实例化->生成对象->属性填充后会进行afterPropertiesSet方法,这个方法可以用在一些特殊情况中,也就是某个对象的某个属性需要经过外界得到,比如说查询数据库等方式,这时候可以用到spring的该特性,只需要实现InitializingBean即可:@Component(“a”)publicclassAimplementsInitializingBean{privateBb;publicA(Bb){

  • mysql经典50道练习题

    mysql经典50道练习题问题及描述:–1.学生表Student(SID,Sname,Sage,Ssex)–SID学生编号,Sname学生姓名,Sage出生年月,Ssex学生性别–2.课程表Course(CID,Cname,TID)–CID–课程编号,Cname课程名称,TID教师编号–3.教师表Teacher(TID,Tname)–TID教师编号,Tname教师姓名–4.成绩……

  • 软件工程保研浙江大学、南京大学、同济大学、中山大学经验分享

    软件工程保研浙江大学、南京大学、同济大学、中山大学经验分享一、个人基本情况学校:某末流985专业:信息管理与信息系统排名:1平均成绩:91.23科研与比赛:一个国家级大创,互联网+国家级银奖,一篇论文(未发表),还有一堆没用什么用的水奖二、保研经验分享1.中山大学数据科学与计算机学院我参加的是中山大学的夏令营,最后的结果是考核合格(拟录取)。由于疫情原因,所以这次让我们做了一个进行自我介绍的PPT,面试时间总共为20分钟,有8—10分钟的时间进行PPT自述(中文),讲解完后老师会用英文提问,当时问我的问题是:介绍你最喜欢的城市、介绍

  • A股30年,历史的拐点和暗示(大盘篇)

    A股30年,历史的拐点和暗示(大盘篇)来源:主动型量化作者:刘帅路

  • 费雪信息 (Fisher information)

    费雪信息 (Fisher information)——————————————————————————作者:知乎用户链接:https://www.zhihu.com/question/26561604/answer/33275982来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。——————

  • 经典vbs代码收集「建议收藏」

    经典vbs代码收集「建议收藏」经典vbs代码收集2011年01月17日  经典的vbs代码,收集起来也为了以后学习。  VBS脚本用途很多:  1.计算  2.处理文件和文件夹  3.管理Windows  4.处理Word,Excel,PowerPoint等Office文档  5.嵌入网页,驱动dHTML  6.编写HTTP通信  7.调用系统功能…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号