您可以根据三个通道的权重对它们进行加权,从而计算RGB值的主观亮度感知亮度,例如但是,忽略人类生物学和知觉,是否存在一种可以接受的方法来计算RGB值的客观理论“光强度”呢?可以,例如:
(0.21 × R) + (0.72 × G) + (0.07 × B)
。 (理论上是因为实际值会因显示器而异)
考虑到RGB值对应于像素的三盏灯的强度,我的第一个想法是取平均值:
(R + G + B) ÷ 3
例如,使黄色(
#ffff00
)的强度是红色(#ff0000
)的两倍。 这是有道理的,考虑到两个灯都亮了,而不是一个,但是看着颜色,我猜想它们的强度差不多。
与深黄色(
#808000
)不同,深黄色实际上等于红色! 我怀疑没有线性关系使这个问题感到困惑。
可以从RGB值计算出客观的光强度吗?
#1 楼
简短的答案:否,但是,如果您对细节感兴趣,请继续阅读(:关于照明单元
照明的“亮度”的确很差/模棱两可。以下是用于定义光“亮度”的照明计算中常用的不同照明属性/单位的列表。我在[括号中]列出了辐射度和光度属性/单位。辐射度单位是人类视觉系统(HVS)基于瓦数(W)定义的中性“物理”单位,而光度单位是基于流明(lm)定义的HVS加权单位。
光度单位通常用于渲染,因为几乎所有消费者图像输入和输出设备在这些单元中运行,因为它们针对常规三刺激(LMS)HVS进行了图像采集和消耗而设计和优化。光度和辐射度单位之间的正确转换不仅仅是简单地乘以某个因素(例如,千米之间)和英里或千克和磅),但与可见光谱的光谱功率分布(SPD)不同的投影(稍后说明)。某些人使用683 lm / W的恒定发光效率在单位之间进行转换,但这与实际的联系很少,并导致不切实际的值。
瓦数(W)[流明的光通量(lm)]-灯发出的总功率(与形状或大小无关)
辐射出射率,W / m ^ 2 [发光出射率[以lm / m ^ 2或Lux为单位]-单位面积的光向所有方向发射的功率(请考虑具有等效辐射通量的不同尺寸的光源)
以W / sr为单位的辐射强度(sr =立体声)[以lm / sr或Candela表示的发光强度]-某个方向的光发射的功率(想想具有等效辐射通量的点光与全能光)
以W / sr / m ^ 2表示的辐射度[以lm / sr / m ^ 2表示的亮度或Nits]-从某个方向落在表面斑块上的功率(例如,屏幕上的像素或从某个方向掉落的表面斑块)
照度W / m ^ 2 [照度lm / m ^ 2或勒克斯]-不管方向如何,落在一块表面上的功率(例如,半球形的天空照亮一块地面)。
进行照明计算时了解这些属性之间的区别很重要,就像在进行物理计算时不要混淆长度和速度的属性一样重要。还有其他各种光属性,但只要掌握了以上内容,您就可以理解得很远。
可见光谱和RGB投影
可见光谱包含“无限”数量的电磁波长约为390nm到730nm。
用SPD定义光发射的功率谱(以W / m ^ 2 / nm为单位),您可以计算出“ HVS中性” ”的物理光强度,即通过对可见光范围内的光谱进行积分来计算辐射出射$ M_e $(以W / m ^ 2表示):
$$ M_e = \ int_ {390} ^ {730} S(\ lambda )d \ lambda $$
但是,通过使用HVS加权颜色匹配功能投影SPD,以光度为单位定义RGB颜色空间。进行此投影是因为存储SPD会消耗大量内存,而对于图像可视化目的却几乎没有好处。在可见光范围内,用积分定义SPD到RGB的投影,如下所示: \ lambda $$
$$ G = \ int_ {390} ^ {730} S(\ lambda)\ bar {g}(\ lambda)d \ lambda $$
CIE 1931根据对10位人类观察者的测量,定义了如下所示的标准观察者RGB颜色匹配函数
如您所见,这些函数不是RGB的离散波长,而是(重叠)波长的加权平均值。
不可能从RGB值中明确计算出辐射出射量,因为许多不同的SPD可能会导致产生不同的辐射出光退出但投影到相同的RGB。这称为同色异谱。
评论
我认为有可能,但是解决方案取决于光强度的定义。所以我建议您具体说明一下你确定吗?根据Wiki,发光强度基于发光度函数,是人眼敏感度的标准化模型
是的..你又对了
我想您可以将R,G,B乘以所述光的反波长(频率)来近似其功率,尽管此假设R,G,B是在3个不同波长的3个离散峰,而实际上功率分布在一些重叠范围。
0..255或0..1等于黑到白,但在显示输出时,128(或0.5)不是介于0和1之间的值的实际中间值。中间大约是158,iirc。