フォローアップ:"選別"することによって色を独自性
-
08-06-2019 - |
質問
またN最大限遠色(一部関連する距離できるソート方色あめの最初のMも合理的な近さを最大限に異なる。
つまり、バンチの異なる色、秩序だったので利用し、多くのデザイン-インスタレーションしたいから始めとすると合理的に確保したものであるという異なることになるあの色も非常に異なる(例えば、青みがかった赤い横に赤みがあります。.
ランダマイズ処理を施いがけないのに最適です。
解明:もたらされた大きな視覚的に異色な256、または1024いうな利用の場合は、そのうちの16をいただいた比較的見ごたえのあるサブセットのメーカー。する場合と同じ結果が得られます、、というこのリストの1024ように近づく個別の色を目視での距離の一覧です。
正しい解決策はありません
他のヒント
この音は私のように 耐性グラフ ごみの地図路の少なくとも。場合は逆の要件、経路最大耐えかさを生み出すために使用されるセットから生産の最大差として行く、最終的に始めに戻り値に近づけます。
例えば、こちらの方もいます。
- その間の距離(参考 他の投稿 からそれぞれの色、その他すべての色
- 和の距離はそれぞれの色、ここで示す 距離はどのくらいのカラーから他のすべての色合計
- 注文のリストによる距離が、その斧がないという悲惨な状態
このことのようで、一覧から始まるとカラーバリエーショろか他のすべての色を、色の一覧をする近くに他の色です。
編集:読書のご返信にて最初の空間分譲などにぴったり合わ以上の説明から色に近い色のもののリストがいてクラスターの色のどこかに、少なくとも一つの色からクラスターが近くに位置開始のリストというのが一般的でしたろか他のすべての色。合意いたしました。
この問題を呼カラー量子化、多数の有名アルゴリズム http://en.wikipedia.org/wiki/Color_quantization 知っている人の割アプローチをいいます。
う認識が重要で、その場合も考えておいた方がよいでしょう働きを知覚のカラースペースなどのYUV,YCbCrた。詳細に使用しました、ていうよりは良い結果sRGBです。
の変換とからsRGBにある、世界に向けて発信するが登場しますが、こちらが実際のアルゴリズムがより簡単に、ボーナスパーツとして今後のことはほとんどの作業のための色はブラインド!
N最大限遠色とみなすことができるセットの配布ポイントの3次元色空間です。ればな形を生成することができますから を上回る景色の配列, その他のプレフィックス(第M色もよく分散す。
について知っておきましょ理解の問題を正確に希望が得らのサブセット M 色の 最高の平均距離 と色で、一部の距離関数 d.
別の言い方をすれば、検討の初期設定 N 色として、undirectedグラフのすべての色を接続したいの 最長経路に この訪問 M ノード。
解決NP完全グラフの問題を超えてっしゃいましたら、お教え下さい恐れができるように走り簡単な物理シミュレーション:
- 成 M ランダムポイントでの色空間
- その間の距離と各ポイント
- の算定に反発力をベクトルの各ポイントを移動させることができ離れて他のすべてのポイント(1/(距離 ^2)としてベクトルの大きさ)
- 和の反発力をベクトルの各ポイント
- 更新の位置にポイントによる総括反発力をベクトル
- 抑制の為のバ座標などの輝度かが負または上記一)
- 繰り返しからステップ2でポイントの安定化
- 各ポイントを選択し、最寄りの色からオリジナルセットの N
ですから効率的で小さな M で効率的に十分で近くのものにつかいます。
場合の色の距離の関数は単純であり確定性の発生に最適なサブセット.
- を始めのリストが表示されます。CandidateColors、当初は含んでお色とSortedColorsは、初期状態では空です。
- ピ色から削除しますCandidateColors、それによって、SortedColors.この色は最も普通でいいの場を迎えるカラー jivesものとします。
- 各色CandidateColors計算し、その合計。総距離を計算した距離からのCandidateColorれぞれの色SortedColors.
- 削除の色は最大の総合距離からCandidateColorsとに加え末SortedColors.
- まCandidateColorsここが空なら、ファイルを戻すステップ3.
この欲張りアルゴリズムはお好評を得ております。
ることができ並べ替えるには、候補色のバリエーションは最大離の最低限の距離を指標のメーカー。
利用ユークリッド色距離:
public double colordistance(Color color0, Color color1) {
int c0 = color0.getRGB();
int c1 = color1.getRGB();
return distance(((c0>>16)&0xFF), ((c0>>8)&0xFF), (c0&0xFF), ((c1>>16)&0xFF), ((c1>>8)&0xFF), (c1&0xFF));
}
public double distance(int r1, int g1, int b1, int r2, int g2, int b2) {
int dr = (r1 - r2);
int dg = (g1 - g2);
int db = (b1 - b2);
return Math.sqrt(dr * dr + dg * dg + db * db);
}
ができるものへ交換しています。それだけでニーズカラー距離。
public void colordistancesort(Color[] candidateColors, Color[] indexColors) {
double current;
double distance[] = new double[candidateColors.length];
for (int j = 0; j < candidateColors.length; j++) {
distance[j] = -1;
for (int k = 0; k < indexColors.length; k++) {
current = colordistance(indexColors[k], candidateColors[j]);
if ((distance[j] == -1) || (current < distance[j])) {
distance[j] = current;
}
}
}
//just sorts.
for (int j = 0; j < candidateColors.length; j++) {
for (int k = j + 1; k < candidateColors.length; k++) {
if (distance[j] > distance[k]) {
double d = distance[k];
distance[k] = distance[j];
distance[j] = d;
Color m = candidateColors[k];
candidateColors[k] = candidateColors[j];
candidateColors[j] = m;
}
}
}
}
をとっているということからN色、ピMの色が必要な場合、 < N、Mは ベスト 表現の色の上がります。
としてより良い例の低減、真のカラー(24ビットカラースペース)を8ビットマップされたカラースペース(GIF?).
が量子化アルゴリズムをこのように、 適応的空間分割 使用するアルゴリズムImageMagic.
これらのアルゴリズムは通常なり、既存の色をソースからスペースが新しい色を、対象となる空間になるとよく似のソースのメーカー。としての簡素化とえば、3色の画像については赤色の異なる強度や青みがかった濃淡など) 第三は、青、および必要の削減に今回のプロジェクト期間は、対象者の画像が赤色での平均ではオリジナル赤+青色からイメージです。
が必要な場合は何もしなかったお客様の質問:)
分割することができてRGB六角形式の情報を短時間で得ることができ、R Rの異なる色のG、B
と同じ形式HTML
XX XX XX
RR GG BB
00 00 00 = black
ff ff ff = white
ff 00 00 = red
00 ff 00 = green
00 00 ff = blue
いものする必要がある決定はどのように近い色で、何が許容差のセグメントに考えられる。