【问题标题】:Luminance Matching Two Colors亮度匹配两种颜色
【发布时间】:2014-02-13 07:07:48
【问题描述】:

这似乎是我正在尝试做的一件非常简单的事情,但 Google 搜索并没有完全找到我正在寻找的东西,我想正确地做到这一点。

基本上我需要匹配两个 bmps 的亮度。它们是简单的圆圈(125x125 像素),我只知道它们的原始颜色(0-255 范围)RGB 值 255,0,0。我需要找到与这些圆圈亮度相同的 RGB 灰度值。

我看到的所有其他亮度/亮度匹配教程都是针对包含各种色调、亮度等的图片,我不确定这些技术是否适用于这种情况(当然更简单)。

我希望能够计算出 RGB 值,以便将它们输入到实验构建器程序中,但如果需要 GIMP 的任何工具或提供帮助,我确实可以使用它。

对于这个可能很简单的问题,我深表歉意,但我对图形、亮度测量等知之甚少。感谢您提供的任何帮助。

附录:我实际上认为这是问一个额外问题的好地方。是否有将坎德拉转换为(可能是近似值?)RGB 值的公式?我将这些颜色值与坎德拉值松散地建立在基础上,并且很想知道是否存在一个等式/方法将两者等同起来超越猜测。

【问题讨论】:

标签: graphics colors rgb brightness luminance


【解决方案1】:

您需要注意亮度匹配的数字图像,因为实际亮度取决于它们的显示方式。特别要注意"gamma correction",它是 RGB 值和实际显示亮度之间的非线性映射。一些图像可能具有与数据本身相关的内部“伽玛”值,许多显示设备有效地将“伽玛”应用于它们显示的 RGB 值。

但是,对于线性存储和显示的图像(有效 gamma 为 1),有一个 standard luminance measure for RGB 值:

Y = 0.2126 * R + 0.7152 * G + 0.0722 * B

实际上,有许多标准,对于线性 R、G 和 B 分量具有不同的权重。但是,如果您不确定图像的具体显示方式,您不妨选择一个并坚持使用它...


无论如何,您可以使用它来解决您的具体问题,如下所示:您想要一个灰度值(r,g,b) = (x,x,x),其亮度与纯红色值 255 相同。方便地,三个亮度常数总和为 1.0 .这为您提供了以下公式:

Y == 1.0 * x == 0.2126 * 255
--> x ~ 54

如果你想匹配不同的颜色,或者使用不同的亮度权重(总和还是1.0),过程是一样的:只需根据亮度公式对RGB值进行加权,然后选择一个相等的灰度值到亮度。

【讨论】:

  • 非常感谢。这非常有帮助,而且正是我想要的——这个例子特别清楚。非常感谢您的帮助。
【解决方案2】:

我认为已经给出的答案具有误导性(所以不允许我发表评论)。如前所述,给出的公式适用于强度,你应该注意伽马,参见例如这里:

http://www.poynton.com/notes/colour_and_gamma/GammaFAQ.html#luminance

因此,应用程序示例应使用解释 gamma 的系数,或手动补偿 gamma,但它没有。是的,图像可能是线性的(所以你有实际的强度),但从描述来看,它的可能性接近于零。

这些系数产生“亮度”,而不是亮度,但这就是您所要求的。见:

http://www.poynton.com/notes/colour_and_gamma/ColorFAQ.html#RTFToC11

总结一下:

亮度 = 0.299 R + 0.587 G + 0.114 B

(r,g,b) = (亮度, 亮度, 亮度)

该材料还应该有助于解决您的附录问题。我发现它非常可靠,这显然是该领域的一个例外。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-29
    • 1970-01-01
    • 2020-01-21
    • 2023-03-14
    • 2013-07-06
    相关资源
    最近更新 更多