ΔE94 をワンライナーで

L*a*b* 空間の単純な距離である色差 ΔE (CIE 1976) に比べて少々ややこしい ΔE94 (CIE 1994) を一行で計算してみました。
awk 使ったから実は一行じゃありませんが。

まず色差を算出したい、対となる測色データ file1, file2 を用意します。

file1

95.05 2.00 -8.38
94.90 2.02 -8.26
94.86 2.03 -8.38
94.70 1.98 -8.33
94.43 1.99 -8.18

file2

94.95 1.90 -8.35
94.98 1.94 -8.32
94.90 1.91 -8.27
94.69 1.90 -8.26
94.30 1.92 -8.18

左から順に L*, a*, b* 値です。
後は以下のコマンドを実行すれば ΔE94 が一列に表示されます。 Matlab や GNU Octave を起動してごちゃごちゃするより気が楽ですね。

# paste file1 file2 | awk '{ dL = $1 - $4; dC = sqrt($2 ^2 + $3 ^2) - sqrt($5 ^2 + $6 ^2); dH = sqrt(($2 - $5) ^2 + ($3 - $6) ^2 - dC ^2); cone = sqrt($2 ^2 + $3 ^2); print sqrt(dL^2 + (dC/(1 + 0.045 * cone))^2 + (dH/(1 + 0.015 * cone))^2) }'

出来れば ΔE00 (CIE 2000) や CAM 02 も計算できるようになりたいのですが……技術文書読むのが面倒くさいです(爆)。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中