在学习HOG描述子时,对图像进行预处理中使用了伽马矫正这个方法,这里对伽马矫正进行简要的介绍。

伽马矫正也称幂律变换,一般用于平滑的扩展暗调的细节。进行伽马矫正的原因是因为人类的眼睛在感知光线时,眼睛对亮度的感知遵循近似的幂函数(如下图所示)而不是线性函数。

计算机系统中,由于显示器或显卡的原因会出现实际输出图像有亮度偏差。在第一次进入一些游戏时,想必大家都经历过调节屏幕亮度参数直至能看清底部图片的操作吧,这也伽马矫正的一种。

从图像中可以看出,当输入值为0-10时(实际亮度),输出值大概为0-50(人类视觉感知亮度)。但当输入值为240-255时,输出值并没有大幅度变动,由此可见人类视觉神经对黑暗的变化更加敏感。

然而,相机传感器与人类视觉神经不同,相机传感器遵循线性关系(如下图所示),对暗部和亮部的敏感度也是相同的。

那么在显示器显示图像时问题就出现了,所有显示设备(比如传统CRT屏幕)都具有电压响应强度曲线,该曲线是幂函数,指数Gamma从1.8到2.5不等,如下式所示。

这就导致显示器和相机传感器捕捉的图像不一致,为了校正这个差异,我们对输入信号进行伽马矫正(Gamma correction)。

如果图像未经过伽马矫正,则亮色部分被分配过多位值,暗色部分被分配过少位值,图像会看起来过暗或有漂白的效果。

伽马矫正实例

下面介绍伽马矫正的具体过程:

假设图像中一像素A值为200,那么对这个像素矫正的过程如下:

1.归一化

将像素值转换为0-1之间的实数:, p为像素值。对像素A而言,其值为0.783203

2.预补偿

根据公式,将归一化后的像素以为指数对应值,进行指数运算。若gamma为2.2,则为0.454545,则像素A预补偿结果为

3.反归一化

将预补偿后的结果反变换为0-255之间的整数:,对像素A而言,预补偿后的A为228,这个228就是显示器显示的数据。

通过观察得到,如果图像分辨率为800*600,则需要进行48万个浮点数运算,计算效率低,无法实时运行。

由此提出一种快速算法,将0-255个像素值的256个值分别进行预补偿计算得到一个gamma矫正查找表(LUT),通过查找表,就可以快速对0-255之间任何的图像值进行gamma矫正。

参考文献:

[1] https://theailearner.com/2019/01/26/power-law-gamma-transformations/

[2] https://www.cnblogs.com/qiqibaby/p/5325193.html

[3] https://blog.csdn.net/love_xunmeng/article/details/8274400

伽马矫正(Gamma correction)相关推荐

  1. OpenGL学习脚印:伽马校正(Gamma Correction)

    写在前面 由于CRT,LED等显示设备显示颜色时并非按照线性方式工作,因此我们在程序中输出的颜色,最终输出到显示器上时会产生亮度减弱的现象,这种现象在计算光照和实时渲染时对图形质量有一定影响,需要我们 ...

  2. 伽马校正(gamma correction)学习笔记

    学习HDR和Bloom特效的过程中,接触到了伽马矫正的问题.查阅了不少资料,这一篇讲的最清楚,下面的图片也是来自该文章. 这应该说是一个历史遗留问题,以前的CRT显示器是使用电子显像管,通过控制电流大 ...

  3. 【TA100】图形 2.6伽马(Gamma)校正

    很好的视频 https://www.bilibili.com/video/BV15t411Y7cf/?spm_id_from=333.788.b_636f6d6d656e74.96&vd_so ...

  4. OpenCV4.3 Java 编程入门:图片的亮度、对比度、及伽马矫正

    文章目录 1 计算公式 2 对比度.亮度矫正 3 伽马矫正 图像亮度和对比度的调整操作,属于图像处理中比较简单的一种--点像素操作! 1 计算公式 点操作仅仅根据输入像素值,结合配置参数,来计算相应的 ...

  5. matlab伽马分布,gamma函数 Gamma/伽马函数,伽马分布

    伽玛函数(Gamma函数),也叫欧拉第二积分,是阶乘函数在实数与复数上扩展的一类函数.该函数在分析学.概率论.偏微分方程和组合数学中有重要的应用.与之有密切联系的函数是贝塔函数,也叫第一类欧拉积分.可 ...

  6. 图形渲染——伽马矫正

    这个话题一直是我的一个困扰,因为我看了Unity Shader的讲解,总感觉作者是不是把问题搞反了,前后叙述是矛盾的.后来经过反复查看,可以肯定作者是对的,但是因为表述不清楚或者太啰嗦,把一些重点给掩 ...

  7. 了解伽马(GAMMA、伽马值、光度、灰度系数)

    一. 在哪见过.听说过Gamma? * 还用说,Adobe Gamma * 常听说MAC的默认Gamma是1.8,PC的是2.2 * 我的显卡驱动程序里有Gamma调节 * 我下载了一个软件,也可以调 ...

  8. 数字图像处理之伽马(gamma)变换

    输入图像灰度值 r,输出图像灰度值s,变换公式 s = T(r),如下 : 原图像"arial.jpg",取0.7,3.0,变换后图像如下,并附三通道分布直方图(B,G,R). A ...

  9. 伽马(Gamma)校正的原理及opencv实现

    转自 Gamma校正及其OpenCV实现,略有改动. 一.什么是Gamma校正? Gamma校正是对输入图像灰度值进行的非线性操作,使输出图像灰度值与输入图像灰度值呈指数关系: [2] 这个指数即为G ...

最新文章

  1. 使用RNNs进行机器翻译——介绍RNN和LSTM网络及其应用
  2. 2014年下半年信息系统项目管理师上午试题试题与答案 54
  3. 化工热力学重修补考第二章重点内容
  4. threadgroup_Java ThreadGroup list()方法与示例
  5. 二叉搜索树的删除操作可以交换吗_JavaScript数据结构 — 二叉搜索树(BST)ES6实现...
  6. [SoapUI] Mock Service
  7. php和python-PHP和Python性能比较:放弃PHP改用Python
  8. python工资一般多少p-Python里的黄金库,学会了你的工资至少翻一倍
  9. 数据库的使用(SQL)
  10. Windows安装宝塔后跳过绑定手机号
  11. 433MHz资讯一点通
  12. IDEA统计自己写了多少行Java代码,看看自己的辛劳成果吧
  13. mysql的时间最晚日期_MySQL日期时间函数
  14. Axure RP Pro 相关问题 导出成PDF
  15. 大数据 Linux 搭建(一)
  16. git中的revert和reset
  17. 几种技巧,帮你提升接口查询速度
  18. 解决:springboot生成jar运行没有主清单属性
  19. 每日科创板之729:首批25股全线上涨 晶晨股份柏楚电子申购
  20. 【毕业设计】52-基于单片机的车厢智能烟雾报警器设计与仿真(原理图_仿真_配套设计文档_PPT_流程图_外文翻译)

热门文章

  1. AC_AttitudeControl_Heli.cpp的AC_PosControl::set_dt函数代码分析
  2. 在WPF中加载gif动态图片
  3. 除了竞争,中美在自动驾驶领域可以有哪些合作
  4. ARAP重分类:扪心自问,细节处你真的懂我吗?
  5. android os 魅蓝2,魅蓝2抢先评测:除了两点 无可挑剔!
  6. 无线网密码怎么改服务器停用,手机怎么修改无线网密码?
  7. 计算机应用决策支持系统,决策支持系统
  8. 2022年下半年软件设计师考试报名时间
  9. DICOM:DICOM标准学习路线图(初稿)
  10. 哀嚎遍野!学妹跟学弟分手了,因为JavaEE期末课设SSM太难了!呜呼哀哉!