gpt4 book ai didi

image - 改变感知亮度的基准算法?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:48:06 25 4
gpt4 key购买 nike

更改 RGB 像素感知亮度的基准算法是什么。比如:

如果我有 RGB (120, 33, 213) 然后 ( ... 使用 ... (0.299*R + 0.587*G + 0.114*B) ....) 我得到 79.533 作为感知亮度但我知道没有办法将同一像素的亮度提高到 80,因为它有很多可能的值。

我已经搜索了一段时间的解决方案,但找不到。有一些算法可以计算亮度,例如:

Formula to determine brightness of RGB color

但是这些算法是不可逆的。

此外,除非有人可以纠正我,否则我不会考虑使用 HSL 或 HSV 作为正确的方法?

编辑:使用 HSL 颜色空间,我能够在很大程度上保留颜色的同时控制亮度,但我想知道是否有更好的方法。

谢谢-

最佳答案

您不需要颠倒亮度等式,您只需计算出与所需亮度的比率即可。

从你的例子:

//target luminance = 80

srcR = 120
srcG = 33
srcB = 213
srcLum = 79.533

destLum = 80
ratio = (destLum / srcLum) = 1.0058717...

destR = (srcR * ratio) = 120.705
destG = (srcG * ratio) = 33.194
destB = (srcB * ratio) = 214.251

您必须决定如何舍入它们以获得 int 值,但这是一般的想法。不过,从 79.5 到 80 并没有太大变化,因此您不会看到太多。如果你要到 40,你最终会得到 RGB(60,17,107)。

正如 Mark Ransom 在下面指出的那样,一旦您的某个值达到 255,您就必须做出选择。要增加超过该点的亮度,您将改变色调或饱和度(或两者)。他的回答here很好地显示了两者之间的区别。

关于image - 改变感知亮度的基准算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17072057/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com