我有由仪器测量的一组特定
XYZ
刺激值的源 RGB
数据。
我的目标是计算 RGB
校正 3D LUT
,将 wide gamut
颜色(源)校正为 sRGB Gamma 2.2
(目标)。
不幸的是,结果
3D LUT
严重过度校正,应用 LUT 时生成的颜色不正确。
例如,广色域绿色(远离 sRGB
绿色)被 3D LUT
校正为黄色,校正过多,会超出 sRGB
绿色目标。
这是我迄今为止每种颜色的工作流程:
如何改进我的工作流程以获得准确的
RGB
修正 3D LUT
?
这是上面列出的步骤示例,针对
RGB
刺激 [0, 1, 0](全绿色),针对目标 sRGB Gamma 2.2
当应用
3D LUT
时,全绿色 [0, 1, 0] 现在测量到 sRGB
黄色原色附近,因此它会过度校正颜色。
我并没有真正遵循“校正”方面,它看起来好像您将
Linear RGB
视为 sRGB
和您的 Wide Gamut RGB
之间共享的空间,而不是有两个不同的 Linear sRGB
和 Linear Wide Gamut RGB
空格。
例如Display P3 中的纯绿色:
这里,
Linear Display P3 RGB [0, 1, 0]
代表与Linear sRGB [-0.22, 1.04, -0.08]
相同的颜色。
我想强调两点:
听起来您希望色域映射将 sRGB 值带入 sRGB 色域,即
[-0.5403827343567055, 1.1311664922193734, -0.033364486006756455] → [?, ?, ?]
,但您需要选择最适合您需求的映射技术。
例如:
[0, 1, 0]
)Oklch
基于CSS规范(尝试保留颜色的色调,结果是〜[0, 0.96, 0.49]
[0.25, 0.96, 0.60]
)
ICC 配置文件 - 这不是最容易使用的东西,甚至他们的 ROMM RGB (ProPhoto) 配置文件也包含矩阵运算 - 但如果 LUT 适合您的情况正在做的事情可能值得探索。