HSI(Hue Saturation and Intensity)には2つの色の値があり、2つの色の視覚的な違いを表す数値が必要です。色相は0から360までの数値です。彩度は0から1で、強度は0から1です。
たとえば、彩度が100%、強度が100%の赤と青を考えてみましょう。 このウェブサイトでは、次のテキストを入力して色を表示する方法があります。
赤は:hsv 0、100%、100%
青は:hsv 240、100%、100%
明らかにこれらは2つの非常に異なる色であるため、色の違いを計算する簡単な方法は、色相コンポーネントを使用して、色相の絶対差を計算することです。これは、360も等しいため120(360-240)になります。色相は0です。
問題は、彩度または強度が非常に暗いまたは明るい場合に発生します。非常に暗い赤と青を考慮してください。
濃い赤は:hsv 0、100%、20%
ダークブルーは:hsv 240、100%20%
明らかに、これら2つの色の視覚的な違いは、違いを比較するように求められた場合に人間が述べるように、明るい赤と青の色よりも小さくなります。ここで私が言いたいのは、友達に「どの色のペアが最も違うのか」と尋ねることです。彼らはおそらくトップの明るい赤青を言うでしょう。
私は人間が気付くように2つの色の違いを計算しようとしています。人間が2色のaとb、次に2色のcとdを見ると、どちらが最も異なっているかに気付くことができます。まず、色が明るい(ただし明るすぎない)場合、違いは色相に基づいています。色が白などの明るすぎる場合、または黒や灰色などの暗すぎる場合は、差が小さくなります。
x = diff(a、b)およびy = diff(c、d)がxとyを生成する関数diffを持つことができるはずです。また、xとyを使用して違いを比較し、最も異なる色を見つけることができます。最小の異なる色。