标准CIE xyY转换为CIE XYZ
提取色域顶点坐标 (Chromaticity Coordinates)
每个三角形有 3 个顶点,对应三个基色的 xy 坐标:
红色顶点 R(x_r, y_r)
绿色顶点 G(x_g, y_g)
蓝色顶点 B(x_b, y_b)
推导XYZ 值(假设亮度 Y=1)
从每个基色的 (x, y) 推导出其 XYZ 值(假设亮度 Y=1)
def xy_to_XYZ(x, y):
return [x / y, 1.0, (1 - x - y) / y]
Xr, Yr, Zr = xy_to_XYZ(xr, yr)
Xg, Yg, Zg = xy_to_XYZ(xg, yg)
Xb, Yb, Zb = xy_to_XYZ(xb, yb)
M = np.array([
[Xr, Xg, Xb],
[Yr, Yg, Yb],
[Zr, Zg, Zb]
]) # 每列是 R/G/B 的 XYZ
利用白点(如 D65)来校正真实亮度
计算缩放因子 S 以匹配白点 XYZ
得到最终 RGB → XYZ 矩阵
License:
CC BY 4.0