在我正在实现的直方图显示中,我成功地显示了RGB直方图。与 Photoshop 相比,似乎很正确!
(以下所有截图均来自同一张图片)
现在,对于亮度直方图,我使用了以下公式:
Y = 0.2126 R + 0.7152 G + 0.0722 B
(如此处所讨论)
但是,我的似乎与 Photoshop 的 亮度直方图(也来自其他应用程序)不同:
事实上,我的亮度直方图(根据上面的公式计算),似乎等于Photoshop的RGB直方图:
从 RGB 值实现正确的亮度直方图的正确公式是什么?
附注:我尝试过以下公式,但它们似乎并没有让我接近 Photoshop 的实际亮度直方图:
Y = 0.2126 R + 0.7152 G + 0.0722 B
Y = 0.299 R + 0.587 G + 0.114 B
Y = 0.33 R + 0.5 G + 0.16 B
Y = 0.375 R + 0.5 G + 0.125 B
(请注意:我确实理解,由于色彩空间差异、不同应用程序使用的实际公式等,直方图在不同应用程序之间往往略有不同。我使用 Photoshop 作为常见示例。我也确实与其他图像编辑软件,差异看起来都是一样的。)
在应用系数之前,您必须对 sRGB 值进行线性化。
适当的术语是亮度。光度是随时间变化的光,在天文学中用于表示星光强度。
sRGB,以及大多数用于存储或传输颜色数据的 RGB 颜色空间都使用用伽玛或传输曲线(又名“TRC 或色调响应曲线”)编码的值。
另一方面,亮度是光强度的线性值。虽然亮度根据人类对不同波长的敏感度具有光谱权重,但亮度与人类对明度/暗度的感知无关,并且人类明度感知相对于物理光强度是非线性的。
使用 gamma / TRC 的原因在 Poynton 博士的“Gamma FAQ”中有很好的描述。