LoginSignup
1
1

More than 5 years have passed since last update.

JavaScriptでCIE76色差計算

Last updated at Posted at 2017-02-10

Color difference(wikipedia)で公開されているCIE76の色差計算式をJavaScriptで書いてみました

wikipediaで公開されている計算式は以下のとおりです。

CIE76
(「Color difference」(5 Feb 2017, at 02:30. UTC)『ウィキペディア』より引用)

計算式そのものはシンプルなのでJavaScriptで色差計算(ユークリッド)のプログラムとほとんど差はありません。

cie76
function cie76(L1,a1,b1, L2,a2,b2) {
    return Math.sqrt(
            Math.pow(L2 - L1, 2) +
            Math.pow(a2 - a1, 2) +
            Math.pow(b2 - b1, 2)
            );
}

しかし実行するにはRGBではなくLab色空間での値が必要となるため、実際に使う際はRGBからLabへ変換してから呼び出す必要があります。

JavaScriptでRGBからLab色空間へ変換するプログラムはJavaScriptでRGBからLab色空間への変換で公開していますので、それを使って以下のような感じでRGBをLabに変換してから呼び出す必要があります。

var [L1, a1, b1] = rgbToLab(r1, g1, b1);
var [L2, a2, b2] = rgbToLab(r2, g2, b2);
distance = cie76(L1,a1,b1, L2,a2,b2);

または

distance = cie76.apply(this, 
        rgbToLab(r1,g1,b1).concat(rgbToLab(r2,g2,b2))
        )

です。

関連リンク

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1