2011-10-29 5 views
3

私はいくつかの異なる "ランダム"色の値のリストを持っています(1以上8色以下)。 (無作為とは、相互の「コントラスト」がないことを意味します)。与えられた色のセットと最も対照的な色ですか?

色はRGB値で与えられます(HSLモデルのH値、または選択した他の色のシステム - 元の色がどのように生成されるかの制御)。

リストからすべての色から最もコントラストが高い(つまり視覚的に区別できる)単一の1つの色の値を計算する必要があります。私たちは次のように私たちの色で埋め9つの正方形、描く場合

コントラストのための実用的な基準は、8色の場合のための正方形のXの

 
[1][2][3] 
[4][X][5] 
[6][7][8] 

色を明確に区別できなければなりませんすべての隣接する色から。

簡略化の可能性:最大色数を8から4に減らす(この例では2、4、5、7の2乗、対角は無視する)。

答えて

1

私は最善の解決策は、可能性を考える:すべての色(単純な線形最適化)

    1. 最大化色相差
    2. 最大化飽和

    http://www.colorsontheweb.com/colorcontrasts.asp

    を点灯する最大化

    編集:線形プログラミングでは、下位記号を与えることができます斜めの色にする。

    Edit2:最大化の意味: 色相のコントラストを最大にしたいとします。つまり、Hiが色iの色相を表すすべての| Hi - result |の合計を意味します。最小の差異の条件を作成することもできます。 |ハイ - 結果| > Hmin。実際の計算は、線形最適化アルゴリズムに方程式を与えることによって行うことができます。または、0.0と1.0の間のすべての色相値を0.05単位で試して、最良の結果を保存することができます。 http://en.wikipedia.org/wiki/Linear_programming

  • +0

    この場合、「最大化」とは何かを詳しく説明できますか? –

    +0

    有効ですね、ありがとう、試してみます。おそらく、知覚認識カラーモデル(CIELAB?)でうまくいくでしょう。 –

    関連する問題