这不是严格意义上的编程问题,但它是由编程任务提示的,所以我会在这里提出来。
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 使用白点?
答案 0 :(得分:2)
您正在将多个事物混合在一起,这使得很难在理解 RGB 到 XYZ 转换时使用 VonKries色度适应< / em>的。虽然可以使用单个矩阵执行整个变换,即线性变换,但更容易实现更精细的步骤。
VonKries色彩适应要求您拥有以下数据:
我建议首先将样本从 RGB 转换为 XYZ 。从 RGB 转换为 XYZ , M_NPM 的矩阵由RGB颜色空间给出,称为规范化主矩阵 (它的计算超出了问题的范围)。
然后,您可以按照{{3}从 XYZ_S 到 XYZ_D 计算色度适应 M 矩阵 M }。
然后取色度适应矩阵 M 和样本 XYZ 三刺激值之间的点积。
最后,使用 M_NPM-1 或任何适合您用例的相关逆矩阵,将其转换回 RGB 。
答案 1 :(得分:0)