【问题标题】:How to calculate the maximum possible value of Y for a pair of chromaticity coordinates x, y in sRGB如何计算sRGB中一对色度坐标x,y的Y的最大可能值
【发布时间】:2019-03-28 18:56:29
【问题描述】:

我认为距离到原色应该有一些距离,或者连接点和白点的线的交点与色域的限制。

【问题讨论】:

  • 欢迎来到 SO。您是否编写了任何代码来尝试自己解决这个问题?现在您的问题没有显示任何研究工作,这意味着它可能会被否决。查看Help Docs,了解如何编写一个能吸引好的答案的好问题。
  • 你做不到。 x,y 不提供亮度。真正的色彩空间是 Yxy(或 xyz,但这不​​太有趣),其中 Y 是第 3 维。您可能注意到您看到许多不同的 xy 图(寻找黄色)。这些图表只是 Yxy 空间的投影(切割)。
  • 是的,你是对的,我已经编辑了问题。

标签: image colors srgb


【解决方案1】:

我认为你可以用数值方法很好地逼近你的 Y,但是很难确定一个公式。

Y 的最大值为 100,因此为了避免在 sRGB 内部难以找到起点,我可能会实现一个稍微不同的问题的数值近似。

我知道 (100, x, y) 的 Yxy 可能超出范围,所以我会减小 Y 直到进入 sRGB 色域。大约 0.5 - 0.2 的间隔就足够了。

【讨论】:

  • 谢谢,这样更容易。尽管如此,仍在尝试找出以几何方式执行此操作的逻辑。
【解决方案2】:

最简单、最准确的方法是转换为 sRGB,将亮度设置为最大值,然后再转换回 XYZ。转换为 sRGB 时,您必须确保为 Y 选择一个值,该值将在任何点 x,y 的色域内给出结果(它必须低于最小相对亮度系数,对于 sRGB,蓝色为 ≃ 0.072)。请注意,这不会检查点 x,y 是否在色域内:

#include <Math.au3>

;XYZtosRGB

Global $RsRGB[3] = [3.2409699, -1.5373832, -0.4986108]
Global $GsRGB[3] = [-0.9692436, 1.8759675, 0.0415551]
Global $BsRGB[3] = [0.0556301, -0.203977, 1.0569715]

;sRGBtoXYZ

Global $XsRGB[3] = [0.4123908, 0.3575843, 0.1804808]
Global $YsRGB[3] = [0.212639, 0.7151687, 0.0721923]
Global $ZsRGB[3] = [0.0193308, 0.1191948, 0.9505322]

Global $Wx = 0.3127, $Wy = 0.3290

Func DP($T, $S)
    return $T[0] * $S[0] + $T[1] * $S[1] + $T[2] * $S[2]
EndFunc

Func xyYtoXYZ($xyY)
    Local $XYZ = $xyY
    If $xyY[2] <> 0 Then
        $XYZ[0] = $xyY[0] * $xyY[2] / $xyY[1]
        $XYZ[2] = $xyY[2] * (1 - $xyY[0] - $xyY[1]) / $xyY[1]
    Else
        $XYZ[0] = 0
        $XYZ[2] = 0
    EndIf
    $XYZ[1] = $xyY[2]
    Return $XYZ
EndFunc

Func FindY($x, $y)
    Local $xyY = [$x, $y, 0.07]
    Local $XYZ = xyYtoXYZ($xyY)
    Local $sRGBin = [DP($RsRGB, $XYZ), DP($GsRGB, $XYZ), DP($BsRGB, $XYZ)]
    Local $inc = _Min(_Min(1 / $RGBin[0], 1 / $RGBin[1]), 1 / $RGBin[2])
    Local $sRGBout = [$sRGBin[0] * $inc, $sRGBin[1] * $inc, $sRGBin[2] * $inc]
    Return DP($YsRGB, $sRGBout)
EndFunc

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-01
    • 2020-06-16
    • 2017-04-23
    • 2011-01-23
    • 2013-11-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多