色适应变换

时间:2018-05-21 15:22:45

标签: color-space

这不是严格意义上的编程问题,但它是由编程任务提示的,所以我会在这里提出来。
RGB色度自适应如下完成:缩放和伽马转换的 RGB 向量乘以3x3矩阵, M ,其项是色度坐标和白色的函数有问题的颜色空间的点坐标, X S Y S Z S ,以获得 XYZ 矢量。 3x3自适应矩阵,部分基于新的 XYZ 白点, X D Y D Z D (提出了各种系数,超出了本问题的范围),然后乘以 XYZ 以获得色彩适应的矢量, X'Y'Z'。然后, X'Y'Z'乘以逆矩阵, M -1 ,以返回一个新的向量, R 'G'B'的。 我的问题是: M 使用原始 X S Y S Z S 白点计算。是 M -1 原始 M 的倒数,或者是新的 M -1 < / b>反映更新的 X D Y D Z D 使用白点?

2 个答案:

答案 0 :(得分:2)

您正在将多个事物混合在一起,这使得很难在理解 RGB XYZ 转换时使用 VonKries色度适应< / em>的。虽然可以使用单个矩阵执行整个变换,即线性变换,但更容易实现更精细的步骤。

VonKries色彩适应要求您拥有以下数据:

  • 您想要色彩适应的样本颜色,即您的 RGB 颜色。
  • 查看样本的测试光源颜色,即 XYZ_S 三刺激值。
  • 您想要对样本进行色彩调整的参考光源颜色,即 XYZ_D 三刺激值。

我建议首先将样本从 RGB 转换为 XYZ 。从 RGB 转换为 XYZ M_NPM 的矩阵由RGB颜色空间给出,称为规范化主矩阵 (它的计算超出了问题的范围)。

然后,您可以按照{{3}从 XYZ_S XYZ_D 计算色度适应 M 矩阵 M }。

然后取色度适应矩阵 M 和样本 XYZ 三刺激值之间的点积。

最后,使用 M_NPM-1 或任何适合您用例的相关逆矩阵,将其转换回 RGB

答案 1 :(得分:0)