Colors 为什么1931 CIE xyY色度图中的颜色是白色?

Colors 为什么1931 CIE xyY色度图中的颜色是白色?,colors,rgb,srgb,gamut,chromaticity,Colors,Rgb,Srgb,Gamut,Chromaticity,当我们看1931年CIE色度图时,在xyY空间的x-y平面内表示,它在亮度点(如此处用E突出显示的D65点)呈现白色(或接近白色) 但为什么会这样呢?D65的点应表示为x=0.33,y=0.33。给定公式Y=1-x-Y,这不意味着Y是0.34吗 根据我的发现,在0.33,0.33,0.34处的sRGB相关或xyY是158.4182155.5676176.8565。这是浅棕色,而不是1931年的色度图中所见的近白色 似乎我需要缩放Y以获得每个通道的适当亮度值 使用Y=1-x-Y公式,我的图看起来

当我们看1931年CIE色度图时,在xyY空间的x-y平面内表示,它在亮度点(如此处用E突出显示的D65点)呈现白色(或接近白色)

但为什么会这样呢?D65的点应表示为
x=0.33,y=0.33
。给定公式Y=1-x-Y,这不意味着Y是0.34吗

根据我的发现,在
0.33,0.33,0.34
处的sRGB相关或xyY是
158.4182155.5676176.8565
。这是浅棕色,而不是1931年的色度图中所见的近白色

似乎我需要缩放Y以获得每个通道的适当亮度值

使用
Y=1-x-Y
公式,我的图看起来像这样,一个静音图:

我不明白什么

编辑

如果设置Y=1,则下图所示更好

编辑

现在看起来像下图


CIE 1931的白点不在
x=1/3
y=1/3
,白色不在
x=1/3
y=1/3

根据:

D65的CIE 1931颜色空间色度坐标为
x=0.31271
y=0.32902

由于D65代表白光,其坐标也是一个白点,对应于6504 K的相关色温。在HDTV系统中使用的记录709将CIE 1931坐标截断为x=0.3127,y=0.329

x=1/3,y=1/3的含义不同:

在波长方面具有平坦功率谱的光(每1nm间隔中的等功率)对应于点(x,y)=(1/3,1/3)

重要提示:D65不是“平坦功率谱”

计算机系统(PC)使用彩色格式。
在sRGB中,颜色分量在伽马之后(与CIE 1931应用线性曲线形成对比)

在xyY颜色空间中,x,y是色度,y是亮度。
x=0.31271
y=0.32902
是不带亮度的色度,应用灰色色度。
对于白色,使用
Y=1


用于HDTV系统的记录709将CIE 1931坐标截断为x=0.3127,y=0.329

让我们计算
x=0.3127
y=0.329
y=1
,的sRGB:

X=(Y/Y)*X=0.95046

Y=1

Z=Y/Y*(1-x-Y)=1.0891

Rlinear 3.240600-1.537200-0.498600 X 0.99984

Glinear=-0.968900 1.875800.041500*Y=1.00010

Blinear 0.055700-0.204000 1.057000 Z 1.00007

假设结果是
1,1,1

最后一个阶段是应用gamma将“线性sRGB”转换为sRGB。
由于所有值均为1,因此结果为sRGB=
1,1,1


我们可以重复计算
Y=0.2
,结果是线性sRGB=
0.2,0.2,0.2

应用伽马:
伽马(u)=1.055*u^(1/2.4)-0.055

1.055*0.2^(1/2.4)-0.055=0.48453

因此,sRGB=
0.48453、0.48453、0.48453


要转换为标准范围[0255](每个颜色通道一个字节),我们需要按255进行缩放并对结果进行四舍五入:RGB888=
124124124

色度图的解释有些不精确

CIE xyY是一个3D图形。通常我们只看到一个投影(通常不是相交平面,只是一个投影)

一种常见的投影是“加法”xy色度图。你可能会注意到它,因为它的边框是黄色的,中间的某个地方是白色的。在这种投影中,给定色度x,Y,表示最大Y

常见的还有“减法”图表,就像你的第二个一样。没有黄色,就没有白色。这张图只有原色的减法混合,所以较亮的颜色是原色,而它们之间的颜色变暗

注:通常色度图也扩展到了色域之外,因此原色不再是真正的原色,白色不能是白色,黄色可以被切掉,如图所示。你可以先试着在原色之间画一个三角形,然后再展开。它更容易调试

白色将正好位于3D图形的顶部。在第一种情况下,你取色域的外表面,所以你得到白色。在第二种情况下,图形中有一个平面,因此永远不会变成白色。但它仍然是xy色度图

就您的情况而言,我认为您剪裁了颜色值(注1),这是错误的:通过剪裁,您将无法获得正确的色度(通过剪裁,可以删除颜色的某个值,因此通道之间的比率无法保持)。在进行规格化(通道值在0到255之间)之前,应使用浮点或更大的数字进行计算。[标准化(在本例中):保持色度,但调整Y以使最终颜色在色域中]。在实践中:您得到
R
G
B
之间的最大值,然后将每个通道乘以
255/max(R,G,B)

注意:这不是完全正确/精确的。上述归一化应在线性空间(光线线性混合)中进行,并且只有在归一化后,才应应用伽马函数。另一方面,在上面的图中,我们没有每个点x,y的正确颜色。我们只能在三角形(色域)上正确地做这件事。通过将屏幕上的可用颜色扩展到完整的xz色度,我们会产生错误/不精确。因此,伽马校正前后的标准化并不那么重要(它只是稍微改变了颜色)

注1:来自评论:这(剪辑)不是真的,奥托