私はRGB形式で約200色の配列を持っています。私は任意のRGBカラーを取り、最も似ている配列の色と一致するようにしようとするプログラムを書こうとしています。色を一致させるための最適なアルゴリズム。
人間の知覚に可能な限り近い「類似」の定義が必要です。
また、一致の正確さについていくつかの情報を示したいと思います。例えば、白黒:100%、わずかに異なる色相を有する同様の色については、-4%。
ニューラルネットワークを使用する必要がありますか?より簡単な選択肢はありますか?
私はRGB形式で約200色の配列を持っています。私は任意のRGBカラーを取り、最も似ている配列の色と一致するようにしようとするプログラムを書こうとしています。色を一致させるための最適なアルゴリズム。
人間の知覚に可能な限り近い「類似」の定義が必要です。
また、一致の正確さについていくつかの情報を示したいと思います。例えば、白黒:100%、わずかに異なる色相を有する同様の色については、-4%。
ニューラルネットワークを使用する必要がありますか?より簡単な選択肢はありますか?
CIE Lab color spaceに全ての色を変換し、その空間内で最も低いdeltaEと
deltaE = sqrt(deltaL^2 + deltaA^2 + deltaB^2)
色の距離を計算するには、互いに最も知覚的に類似しています。
いいえ、ここにニューラルネットワークは必要ありません!単にHSLカラー値ベクトル考えると、このようなベクトルの加重モジュラス関数を定義:
modulus = sqrt(a*H1*H1 + b*S1*S1 + c*L1*L1);
where a,b,c are weights you should decide based on your visual definition of what
creates a bigger difference in perceived color - a 1% change in Hue or a 1%
change in Saturation
は、私はあなたが= B = 0.5、C = 1最後に
、見つける使うことをお勧め(例えば5%)
私はまた、ちょっと単純なものと同じようにleast squaresメソッドを指摘したいと思います。つまり、数の差を取って、それを正方形にし、これらの差の二乗を合計します。
私は物を探していましたが、私はこの小さな図書館を作ることにしました。
https://github.com/sebastienjouhans/c-sharp-colour-utilities
あなた自身の仕事を促進する回答を投稿するときは、十分注意してください。実際にここで質問に答えて、バックアップと参照としてブログ/ソースのみを使用するようにしてください。現時点では、これはスパムとして警告される可能性があります。 – ChrisF
良い類似度関数であるかもしれないものについての提案についての質問です、またはそれはすぐに、配列に最も似た色(複数可)を見つけるためのアルゴリズムについてです、所与の色に比べて? – mjv
最初にアルゴリズムを試す前に類似性の定義が必要な場合。私は "知覚的に似ている"と思っています。 –