【问题标题】:What's the formula to increase the luminance in an image in a similar way how the L component in Photoshop does it?以类似于 Photoshop 中的 L 组件的方式增加图像亮度的公式是什么?
【发布时间】:2011-09-22 15:00:56
【问题描述】:

例如,我有一个具有这些值的像素:

CGFloat red = 34 // 0 - 255
CGFloat green = 128
CGFloat blue = 190

我想增加亮度,使蓝色为 255。 注意:“亮度”是指 Photoshop 在 LAB 色彩空间中的 L 分量。看图片!

必须有一个特殊的公式来计算增加亮度的 RGB 值,因为 R G B 值是以非线性方式修改的!

证明:我在 Photoshop 中进行了测试并创建了相同的颜色,然后打开颜色选择器进行检查:

然后我激活了 LAB 颜色空间的 L 分量,它控制亮度(至少这是我在说的 - 我的意思是由 L 分量控制的亮度。猜猜那是亮度)。

所以在激活 L 的情况下,我向上拖动左侧的滑块直到 B 达到 255:

现在读取生成的 R G B 值:

CGFloat newRed = 112 // 0 - 255
CGFloat newGreen = 188
CGFloat newBlue = 255

它们之间的区别是:

newRed - red = +78
newGreen - green = +60
newBlue - blue = +65

百分比是:

red shift: +38.42%
green shift: +29.55%
blue shift: +32.01%

这与从 R G B 计算亮度的已知公式不对应,该公式接近 luminance = (red * 0.3) + (green * 0.6) + (blue * 0.1)

显然,它们已以非线性方式移动。

有没有一种已知的方法来计算 newRed、newGreen、newBlue 的红色、绿色、蓝色,其方式与 Photoshop 的计算方式相似吗?

【问题讨论】:

    标签: math image-processing formula luminance


    【解决方案1】:

    所以您想将 RGB 颜色转换为 Lab 颜色空间?当然可以。

    但是有很多不同的标准都用通用名称“Lab”颜色来指代。在编写算法时,您需要选择一个使用。 Photoshop 尤其是 uses CIELAB D50 标准,因此如果您需要准确模拟其处理过程,您可能需要使用该标准。

    您必须记住的另一件事是 RGB 模型是设备相关的,这意味着为了从 RGB 转换为 Lab,您首先需要从 RGB 转换为一些与设备无关的绝对色彩空间。 Adobe 使用其“Adobe RGB”格式执行此操作,但您可以使用 sRGB 之类的标准。调整过程考虑了 RGB 颜色的设备依赖性,但将颜色转换为与设备无关的颜色。完成后,您可以进行最后一步,将颜色转换为 Lab 颜色空间。

    Wikipedia article 在编写转换算法时提供了一些背景信息和有用的公式。和here's someone that has already written such a conversion algorithmone for MATLAB 你可能会转换。

    根据您的认真程度(可能不是),您还可以下载GIMP 的源代码,看看他们是如何实现转换算法的。他们的软件声称支持实验室空间。

    不过,在将 back 转换为 RGB 时要小心。 Lab 颜色空间可以表示远远超出 sRGB 范围的颜色。即使在 Photoshop 中,一旦将图像转换回 RGB(或 CMYK),您在 Lab 模式下看到的大部分内容都会被丢弃。


    编辑:同样值得考虑的是,如果您的唯一目标是在比 RGB 更接近人类颜色感知的颜色空间中调亮颜色,那么您可能根本不需要对 Lab 大惊小怪。许多应用程序通过转换为HSL or HSV color space 来做到这一点。 (Photoshop 称为 HSV、HSB)。

    优点是您可以简单地调整“Lightness”或“Value”值来改变颜色的强度(很像您在 Lab 颜色空间中调整“Luminance”值),但转换算法是更简单(并且通常内置在您选择的语言的标准库中)。

    例如,请参阅my answer to this question,了解用 .NET 语言编写的转换算法。

    【讨论】:

    • 嗨,似乎所有指向 Adob​​e 的链接都消失了。你知道在哪里可以获得与 Adob​​e 为 sRGB -> LAB 所做的匹配的公式吗?谢谢。
    猜你喜欢
    • 2018-11-28
    • 2010-10-25
    • 1970-01-01
    • 1970-01-01
    • 2020-08-27
    • 1970-01-01
    • 2014-12-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多