参考:https://blog.csdn.net/lxy201700/article/details/24929013
http://www.cambridgeincolour.com/tutorials/gamma-correction.htm
1. 什么是Gamma
Gamma是一种指数曲线,显示器用这个指数曲线来调整真实输出到显示屏幕上的颜色值,以此更好的适应人类的视觉体验。
Gamma是显示器用来修改我们输入的颜色值的操作,那么gamma correction就是逆转显示器修改的过程,从而能够让我们这些图形开发者在一个真实的线性RGB空间中进行光照和着色
灰度是指把白色与黑色之间按对数关系分成若干级,其范围一般为0-255,白色为255,黑色为0 .
-
一个完整的图像系统需要2个伽马值:
(1)encoding gamma:它描述了encoding transfer function,即图像设备捕捉到的场景亮度值(scene radiance values)和编码的像素值(encoded pixel values)之间的关系。
(2)display gamma:它描述了display transfer function,即编码的像素值和显示的亮度(displayed radiance)之间的关系。 -
Gamma校正是指对图像传感器所拍摄图像的亮度进行预调,是更暗的信号在显示器上获得更佳的显示效果技术。
2. 什么是Gamma 校正
- 输入电压和显示出来的亮度关系不是线性的.
- Gamma 校正是对输入图像灰度值进行的非线性操作,是输出图像灰度值与输入图像灰度值呈指数关系
经过Gamma校正后的输入和输出图像灰度值关系如图1所示:横坐标是输入灰度值,纵坐标是输出灰度值,蓝色曲线是gamma值小于1时的输入输出关系,红色曲线是gamma值大于1时的输入输出关系。可以观察到,当gamma值小于1时(蓝色曲线),图像的整体亮度值得到提升,同时低灰度处的对比度得到增加,更利于分辩低灰度值时的图像细节。
3. 为什么Gamma 校正
(1). 人眼对外界光源的感光值与输入光强不是呈线性关系的,而是呈指数型关系的。在低照度下,人眼更容易分辨出亮度的变化,随着照度的增加,人眼不易分辨出亮度的变化。而摄像机感光与输入光强呈线性关系。如图2所示
为方便人眼辨识图像,需要将摄像机采集的图像进行gamma校正。
(2). 为能更有效的保存图像亮度信息,需进行Gamma校正。
未经gamma校正和经过gamma校正保存图像信息如图3所示:
可以观察到,未经gamma校正的情况下,低灰度时,有较大范围的灰度值被保存成同一个值,造成信息丢失;同时高灰度值时,很多比较接近的灰度值却被保存成不同的值,造成空间浪费。经过gamma校正后,图像的信息更加逼近原图的信息从而改善了存储的有效性和效率.
(3) IMAGE FILE GAMMA
大多数图像文件使用1/2.2的编码伽马值(例如那些使用sRGB和Adobe RGB 1998颜色的文件),但RAW文件除外,它们使用线性伽马值.
(4)DISPLAY GAMMA
业界已经一致采用了2.2的标准显示伽马值.
3. Gamma 调试
测试环境:TL84(看到有的文档写D65光源下,D65 light 不可以调整,我选TL84),灰阶卡
测试步骤:
1.在室内,室外,暗处环境下,拍摄灰阶卡
2. 将手机调至原始分辨率,拍照菜单保持默认
3. 将灰阶卡国定在灯箱光源正中心.如图
4. 待图像稳定,完成对焦即可拍摄照片
5.open imatest ->stepchart,导入灰阶图。
6. imatest下面详解
7.生成了Excel表,在图片的位置下。
8.一般客观有要求,相邻两阶要大于8,并且这样的阶数要大于等于13阶。(这个每个公司的要求不同,依据每个公司客观标准而定)
4. Imatest
- 点击Stepchart 选项, 导入测试图片.
colorcheck 下面那个
- 调整roi
- 参数设置
基本上是默认的. Scaling 下的results 有文档中选image densilty range =1.5 . 工具提示不建议使用. so 选的 3
- 点击 OK 后出现测试结果
备注: 有不对的地方欢迎指出.
5. 结果查看
(1)红色花圈的是: 曝光测试和gamma的结果
其他图片的我也不知道, 有知道评论说下
(2)查看曲线是否符合
实际测试中我们的标准一般是亮度差值大于 8 才认为可区分, 故我们可以先保存测试结果,
然后到 stepchart_summary.csv 自己写个公式计算相邻两阶亮度的差值,得出可以区分多少
级灰阶.
故以上测试结果是可区分 12 阶。
计算方式就Pixel 那一列,上面减去下面(我写的可真详细)