彩色转灰度的公式

用PS之类软件把彩色图像转成灰度图好像很简单嘛,猜不就是每个像素的RGB值分别乘1/3再加起来就是灰度吗?

直到读书看到这么一行:

fixed luminance = 0.2125 * renderTex.r + 0.7154 * renderTex.g + 0.0721 * renderTex.b; 
——冯乐乐《UnityShader入门精要》P.248
书中指出,这是特定的系数。
 
哦原来不是1/3,彩色转灰度转换不是线性的,应该是跟人眼生理特性有关的,对三原色敏感度不同的三种视锥细胞的比例可能决定了不同的权重。
 
 
搜索了一番,
0.2125R +0.7154G+0.0721B这个公式应该来自国际电联Rec709标准,是为CRT显示器优化的
新版本微调了一点:0.2126 R+0.7152G+0.0722B
 
除此之外,还有其他公式

比如Gray = R*0.299 + G*0.587 + B*0.114

来自Rec.ITU-R BT.601-7(03/2011)

 

而这里更是列出了7种方法:Seven grayscale conversion algorithms (with pseudocode and VB6 source code)

 

posted @ 2022-02-04 11:33  野生特效测试员  阅读(522)  评论(0编辑  收藏  举报