Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1427280
  • 博文数量: 430
  • 博客积分: 9995
  • 博客等级: 中将
  • 技术积分: 4388
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-24 18:04
文章存档

2013年(1)

2008年(2)

2007年(14)

2006年(413)

分类:

2006-06-07 09:54:32


伽马矫正

原 文
  译 者

  很少有人知道,一个标准的计算机显示器的亮度显示不是线性的。
  如果你在屏幕上显示一个亮度为128的点,你会发现这个点的亮度不是一个亮度为64的点的一倍。也就是说,许多图像在计算机上显示的不好。我们可以通过调整屏幕上像素的亮度来减小这种误差。

图1

  我们来看上面八幅演示的图画。每幅图由两部分组成。左边部分一半像素亮度为0,一半亮度为255。如果你眯上眼睛看,这部分混合后的亮度应该为128。右边部分为整块的颜色,第一幅亮度为128,最后一幅亮度为183。你可以发现,第一幅图中,虽然右边部分的亮度为128,但它的亮度看上去还是比左边部分暗。
  这八幅图中,右边部分的亮度逐渐增加。仔细比较每幅图两部分的亮度,找出最接近的一幅,这就是你的显示器需要调整的伽马值程度。
  注意,如果你在256色模式下看这些图,效果不会很好,请使用高彩或真彩模式来看。
  不同的显示器的情况不同。对于一幅图,你要试着调整伽马值,使它能适应大多数显示器。当然,在软件模式下,你可以让用户进行交互式的调整,以便让他们在自己的硬件上显示正确的图像。

  亮度响应曲线

图2

  显示器的亮度不是线性的,左图是显示器的亮度响应近似的曲线。暗的颜色被显示的偏暗了。这是可以被矫正的。
  另外,请注意曲线没有穿过原点。所以,在显示器上的一个黑点并不是完全黑色的。对于这个问题,你没有什么好办法解决它。
  矫正亮度的办法就是伽马矫正。这个过程是简单的,也不需要实时进行。你可以通过查表来进行,创建一个查找表只需要用很少的空间。
  我们把伽马矫正的计量单位叫做g(g通常是大于1的)。可显示的亮度i介于0和1之间。变换公式如下:

pixel = i ^ (1/g)

  当g为1时,不进行伽马矫正。g越大,矫正的量越多。
  因为i的值介于0和1之间,你可以把亮度除以最大亮度,得出i值。处理完伽马矫正后,再乘上最大亮度。见下式:

pixel = ((i / MaxIntensity) ^ (1/g)) * MaxIntensity

 

阅读(1327) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~