RGB 値を使用して最も近いカラー マッチを見つける
カラー データベースに存在しない RGB 値に直面した場合、最も近いカラー マッチを決定するデータベース内での作業は複雑な作業になる可能性があります。すべての値を比較して平均差を計算することはできますが、常に最も効率的な結果が得られるとは限りません。
3D ベクトルアプローチ
色をベクトルとして考慮します。座標が RGB 値を表す 3 次元空間。 3D ピタゴラスを使用して 2 つの色の違いを計算すると、RGB コンポーネントごとに個別に計算する必要がなくなります。
d = sqrt((r2-r1)^2 + (g2-g1)^2 + (b2-b1)^2)
視覚感度の重み付け
ただし、私たちの目はさまざまな色に対してさまざまな感度を持っているため、これを考慮して色の重みを調整する価値があります。たとえば、色の重み付け計算は次のようになります。
d = sqrt(((r2-r1)*0.3)^2 + ((g2-g1)*0.59)^2 + ((b2-b1)*0.11)^2)
この式では、緑には 0.59 の重みが与えられ、赤と青にはそれぞれ 0.3 と 0.11 の重みが与えられます。これは、次の事実を反映しています。私たちは緑に対してより敏感であり、青に対してはあまり敏感ではありません。
最適化考慮事項
この計算を最適化するには、色の間の相対的な違いのみに関心があるため、平方根は不要であることに注意してください。
d = ((r2-r1)*0.30)^2 + ((g2-g1)*0.59)^2 + ((b2-b1)*0.11)^2
一部のプログラミング言語では、べき乗排他的 OR 演算子は異なる場合があり、式の調整が必要になります。
代替色モデル
必要な精度に応じて、複雑な式を備えた CIE94 のような代替カラー モデルを検討する価値があるかもしれません。このモデルは、色の知覚における知覚の違いを調整します。
以上がRGB 値を使用してデータベース内で最も近い色一致を効率的に見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。