Machado色覚シミュレーター

インプットのカラーセット
オリジナル グレースケール P型(弱度) P型(強度) D型(弱度) D型(強度) T型 A型

このシミュレーションでは、色の表現を RGB(Red-Green-Blue)空間から LMS(Long-Medium-Short:錐体応答)空間へ変換し、色覚異常を模擬した変換を行った後に、再びRGBに変換しています。LMS空間は、ヒトの網膜にある3種類の錐体細胞(L:長波長、M:中波長、S:短波長)に対応しています。変換手順は以下の通りです。

  1. RGB → LMS 変換
  2. LMS で色覚異常変換
  3. LMS → RGB 逆変換
  4. 表示用にHEX色へ変換

以下では各種変換について書いておきます。

RGB → LMS 変換行列

RGBベクトル [R, G, B] を LMSベクトル [L, M, S] に変換するには、次の行列を使います:

$$ \begin{bmatrix} L \\ M \\ S \end{bmatrix} = \begin{bmatrix} 0.31399022 & 0.63951294 & 0.04649755 \\ 0.15537241 & 0.75789446 & 0.08670142 \\ 0.01775239 & 0.10944209 & 0.87256922 \end{bmatrix} \cdot \begin{bmatrix} R \\ G \\ B \end{bmatrix} $$

LMS → RGB 変換行列(逆変換)

$$ \begin{bmatrix} R \\ G \\ B \end{bmatrix} = \begin{bmatrix} 5.47221206 & -4.6419601 & 0.16963708 \\ -1.1252419 & 2.29317094 & -0.1678952 \\ 0.02980165 & -0.19318073 & 1.16364789 \end{bmatrix} \cdot \begin{bmatrix} L \\ M \\ S \end{bmatrix} $$

色覚異常タイプ別の変換例(LMS空間)

色覚タイプ 説明 数式
P型強度(Protanopia) 赤に対する感受性の欠如 $L' = 0 \cdot L + 2.02344 \cdot M - 2.52581 \cdot S$
$M' = M$
$S' = S$
P型弱度(Protanomaly) 赤に対する感受性の欠如 $L' = 0.6 * L + 0.4 * M$
$M' = M$
$S' = S$
D型強度(Deuteranopia) 緑に対する感受性の欠如 $L' = L$
$M' = 0.494207 * L + 0 * M + 1.24827 * S $
$S' = S$
D型弱度(Deuteranomaly) 緑に対する感受性の欠如 $L' = L$
$M' = 0.7 * M + 0.3 * L $
$S' = S$
T型色覚異常 Tritanopia(強度) 青に対する感受性の欠如 $L' = L$
$M' = M$
$S' = 1.0 * S$
A型:完全色覚欠如(Achromatopsia) 色に対する感受性の欠如 $L' = M' = S' = (L + M + S) / 3$

実はT型は変換がわからないのでそのままにしている。

参考文献

  1. 色覚モデル変換による色覚障