伽马矫正(Gamma correction) |
您所在的位置:网站首页 › 伽马函数题 › 伽马矫正(Gamma correction) |
在学习HOG描述子时,对图像进行预处理中使用了伽马矫正这个方法,这里对伽马矫正进行简要的介绍。 伽马矫正也称幂律变换,一般用于平滑的扩展暗调的细节。进行伽马矫正的原因是因为人类的眼睛在感知光线时,眼睛对亮度的感知遵循近似的幂函数(如下图所示)而不是线性函数。 计算机系统中,由于显示器或显卡的原因会出现实际输出图像有亮度偏差。在第一次进入一些游戏时,想必大家都经历过调节屏幕亮度参数直至能看清底部图片的操作吧,这也伽马矫正的一种。 从图像中可以看出,当输入值为0-10时(实际亮度),输出值大概为0-50(人类视觉感知亮度)。但当输入值为240-255时,输出值并没有大幅度变动,由此可见人类视觉神经对黑暗的变化更加敏感。 然而,相机传感器与人类视觉神经不同,相机传感器遵循线性关系(如下图所示),对暗部和亮部的敏感度也是相同的。 那么在显示器显示图像时问题就出现了,所有显示设备(比如传统CRT屏幕)都具有电压响应强度曲线,该曲线是幂函数,指数Gamma从1.8到2.5不等,如下式所示。 这就导致显示器和相机传感器捕捉的图像不一致,为了校正这个差异,我们对输入信号进行伽马矫正(Gamma correction)。 如果图像未经过伽马矫正,则亮色部分被分配过多位值,暗色部分被分配过少位值,图像会看起来过暗或有漂白的效果。 下面介绍伽马矫正的具体过程: 假设图像中一像素A值为200,那么对这个像素矫正的过程如下: 1.归一化 将像素值转换为0-1之间的实数: 2.预补偿 根据公式,将归一化后的像素以 3.反归一化 将预补偿后的结果反变换为0-255之间的整数:
通过观察得到,如果图像分辨率为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
|
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |