You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

RGB Chromatic adaptation中M⁻¹选用原矩阵逆还是新白点矩阵逆的问询

关于RGB Chromatic Adaptation中M⁻¹的选择问题

Great question—this is one of those nuanced details in color processing that’s easy to mix up, even for folks who work with color regularly! Let’s break this down clearly:

先明确M矩阵的核心作用

First, remember what the matrix M does: it’s a fixed mapping between your original RGB color space (tied to the source white point XₛYₛZₛ) and the absolute XYZ color space. M is calculated using the chromatic coordinates of your RGB space’s primary colors and the source white point—once your RGB space is defined (e.g., sRGB, Adobe RGB), this matrix doesn’t change unless you switch to a different RGB space entirely.

适配流程的逻辑链

Let’s walk through the workflow you outlined to see why M⁻¹ has to be the inverse of the original M:

  1. Linear RGB → XYZ: You multiply your gamma-corrected, scaled RGB vector by M to get XYZ values. This step translates the RGB values (rooted in the source white point) into absolute color values that are independent of any display’s white point.
  2. XYZ Chromatic Adaptation: You apply the adaptation matrix (e.g., Bradford, von Kries) to convert the source XYZ values to X'Y'Z'—values that will look visually equivalent under the target white point X_DY_DZ_D.
  3. X'Y'Z' → Adapted RGB: Here’s the key part: you want to convert the adapted XYZ values back to the same original RGB space, but now adjusted so they look correct under the target white point. To do this, you must use the inverse of the original M matrix.

Why not use a new M⁻¹ based on the target white point?

If you calculated a new M' using the target white point and inverted that, you’d be converting X'Y'Z' into a different RGB space—one tied to the target white point. That’s not chromatic adaptation; that’s converting to an entirely new RGB color space. The goal of adaptation is to adjust colors within your existing RGB space to appear consistent across different white points, not switch to a new space.

Quick example to drive this home

Suppose you’re working with sRGB (source white point D65) and adapting to D50:

  • M is the standard sRGB-to-XYZ matrix tied to D65.
  • After adapting XYZ to D50, using M⁻¹ gives you sRGB values that will look the same under D50 as the original sRGB values did under D65.
  • Using an inverted M' (tied to D50) would give you values for a hypothetical "sRGB-D50" space, which is a different color space entirely—not what you want for adaptation.

内容的提问来源于stack exchange,提问作者grymlord

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 07:29:59