0

私はいくつかの画像を見てきましたが、それらは一般的に多数の小さな画像から顔を作ります。

たとえば、10x10グリッドで100枚の画像を並べて表示し、小さい画像の色相/土/列を変えて、全体像を見ると別の画像が表示されるようにします。

質問は要約すると-あなたがイメージを持っていると言う。その画像の平均RGB値が定義したものになるように、その画像にどのようなアルゴリズムを適用しますか?

4

1 に答える 1

3
  1. すべてのタイルの色相/彩度/値を計算します (ここでの違いが小さいほど、RGB 空間よりも人間の目には「自然」に見えるため、HSV を使用します)
  2. 次に、全体像の n*n タイルごとに同じ値を計算します
  3. 最も近い HSV 値 (最小値) を持つタイルを見つけ、そのタイルsqrt((h1-h2)^2 - (s1-s2)^2 - (v1-v2)^)を n*n に縮小して結果にスタンプします。

タイルの HSV を見つけるには、すべての RGB 値を合計してピクセル数で割り、最終的な RGB トリプルを HSV に変換するだけで十分です。ただし、保存するために、両方のバージョンを試すことをお勧めします。

RGB <-> HSV 変換に関するウィキペディアの記事を参照してください。

アルゴリズムを改良するために、すべてのタイルを m m に分割し、各グリッド要素の平均 HSV を計算できます。次に、一致を探すときに、大きな画像を通常どおりに分割しますが、m m HSV 値も計算します。これらの m*m に最もよく一致するタイルを選択します。これにより、アルゴリズムは全体像と同じ構造を持つタイルを選択できます。

その特別なタッチのために、ギガピクセル画像を作成してみてください。

于 2009-02-16T13:04:58.797 に答える