解説

動作環境

動作環境は以下の通りです。

構成要素 説明
GUI HTML(Input要素)
内部処理 JavaScript
使用ライブラリ名 使用目的
math.js 行列計算
CIE DE 2000 色差計算(DeltaE2000)

xy色度座標版での処理の流れ

  1. 二色の色度値であるxyY値を取得(htmlのfromから取得)
  2. 色度値をXYZ値に変換(XYZとxyYの関係はCIE1931色空間(wiki)を参照)
  3. XYZ値を錐体反応値に変換(CIE測色標準観察者の錐体分好感度に基づく)
  4. 各色覚タイプの錐体反応値へ変換
    ※ Hans Brettle, Francoise Vienot, John Deutan. Mollon:Computerized simulation of color appearance for dichromats:J.Opt.Soc.Am.A, Vol.14, No.10, pp. 2647-2655 (1997)
  5. 錐体反応値からXYZ値に逆変換
  6. XYZ値からL* a* b*に変換(Lab色空間(wiki))
  7. 各タイプのL* a* b*から色差を算出(CIE DE 2000)
  8. 色差を日本工業規格に基づき程度を判定

sRGB版での処理の流れ

  1. 二色のR値、G値およびB値を取得(htmlのfromから取得)
  2. sRGBをXYZ値に変換(sRGBとXYZの関係はsRGB - Wiki(英語)を参照)
  3. XYZ値を錐体反応値に変換(CIE測色標準観察者の錐体分好感度に基づく)
  4. 各色覚タイプの錐体反応値へ変換
    ※ Hans Brettle, Francoise Vienot, John Deutan. Mollon:Computerized simulation of color appearance for dichromats:J.Opt.Soc.Am.A, Vol.14, No.10, pp. 2647-2655 (1997)
  5. 錐体反応値からXYZ値に逆変換
  6. XYZ値からL* a* b*に変換(Lab色空間(wiki))
  7. 各タイプのL* a* b*から色差を算出(CIE DE 2000)
  8. 色差を日本工業規格に基づき程度を判定
  9. L* a* b* に変換する前のXYZをRGBに逆変換
  10. 二色のR値、G値およびB値をもとにGUIパーツの色を変更

より詳細で技術的な解説

各変換原理の詳細はこちらをご確認ください。