Gamma校正的理解

来源:互联网 发布:python php 开发效率 编辑:程序博客网 时间:2024/04/28 01:16

总是会遇到Gamma校正的字眼,但是真的要说明究竟什么是Gamma校正,却很难说清楚,这便是这篇博客的由来。

为了说清楚,从解决疑问的方式入手:

1.什么是Gamma校正?(what)

2.为什么要进行Gamma校正?(why)

3.怎样进行Gamma校正?(how)


1.什么是Gamma校正?


Gamma源于早期的CRT显示器的响应曲线,也就是输出亮度和输入电压的非线性关系,如图所示: 



图1 亮度和输入电压的非线性关系图


由图可以看出,亮度和输入电压的关系更加近似于指数函数 (output = input ^ gamma )的关系。事实确实如此,CRT显示器厂商都默认将gamma值设为2.5,也就是如上的曲线。这里的指数,也就是我们所讨论的gamma。


2.为什么要进行Gamma校正?


我们已经知道输出和输入的非线性关系为指数函数 output = input ^ gamma,考虑指数函数的性质:


图2 指数函数性质

由图2可以看出,蓝色曲线对应指数gamma <  1,红色曲线对应指数gamma > 1,考虑一副图像,纵轴代表图像的亮度值,横轴代表自变量区间,当gamma > 1 时,随着gamma的变大,高光区对应的自变量区间逐渐变小,而低光区对应的自变量区间逐渐变大;相反,当gamma < 1 时,随着gamma的变小,高光区对应的自变量区间逐渐变大,而低光区对应的自变量区间逐渐变小。概括起来就是:gamma矫正的值大于1时,图像的高光部分被压缩而暗调部分被扩展,当gamma矫正的值小于1时,图像的高光部分被扩展而暗调部分被压缩。

至此,我们知道,通过调节gamma值,我们可以针对性地控制高光区或者低光区的显示细节(表现为:gamma > 1时,低光区被扩展高光区被压缩。表现为“越来越灰暗”,gamma < 1 是,低光区压缩而高光区扩展,表现为“越来越明亮”)。所以,我们可以根据图像的具体情况,选择合适的gamma值对图像进行校正,提升图像的显示细节。


3.怎么样进行Gamma校正?

根据Gamma校正公式 output = input ^ gamma,用MatLab做三组实验,分别对应着

(1)gamma = 0.4;    (2)gamma = 1.0 ;    (3) gamma = 1.8;


代码:

%Gamma校正clear all;img = imread('lena.jpg');%读入图像img = rgb2gray(img);%转成灰度图,即将[0,255]转成[0,1]imgGamma_0_4 = imadjust(img,[],[],0.4);%此处gamma = 0.4figure,imshow(imgGamma_0_4),title('gamma = 0.4');imgGamma_1_0 = imadjust(img,[],[],1.0);%此处gamma = 1.0figure,imshow(imgGamma_1_0),title('gamma = 1.0');imgGamma_1_8 = imadjust(img,[],[],1.8);%此处gamma = 1.8figure,imshow(imgGamma_1_8),title('gamma = 1.8');


实验结果:

 


                 gamma = 0.4                                     gamma = 1.0                                     gamma = 1.8                                  


这里引用一下http://www.cnblogs.com/zhz3996/archive/2010/01/26/1657090.html的例子:

当遇到如下所示的图例:


图3  原始图像


对于这种图像,衣服的颜色属于高光区,难以看清纹理,就是因为高光区被压缩,如果想要看清衣服的纹理(不要邪恶。。。),那么自然想到扩展高光区,根据前面所讲的,那就是将gamma值调小,从而将高光区进行扩展,可以得到如下结果: 


图4 Gamma校正后的结果

总结:

通过这样的处理,明显看到衣服的纹理更加清晰。所以Gamma校正就是这样操作的,根据具体情况选择合适的gamma值。

参考:

1.http://www.cnblogs.com/zhz3996/archive/2010/01/26/1657090.html(写得很好很详细)

2.http://blog.csdn.net/love_xunmeng/article/details/8274400

3.http://www2.xitek.com/info/showarticle.php?id=2521



0 0
原创粉丝点击