6

次の画像があります。

ここに画像の説明を入力

私がやりたいことは、支配的な色に基づいて個々のストリップを「id」することです。これを行うための最良のアプローチは何ですか?

私が行ったことは、画像の値 (HSV) を使用して、その値の出現を分布させることです。問題は、strip0 の値が[27=32191, 28=5433, others=8]strip1 の値の場合です[26=7107, 27=23111, others=22]。決定的な見分けがつきません。

このプロジェクトの主な目標は、実際の黄色の紙をストリップと比較し、どのストリップが最も似ているかを判断することです。

4

4 に答える 4

2

すべての色をスキャンし、ハッシュテーブルを使用して、各色のピクセル数を追跡できます。

それらの数字を取り、対応する色を覚えて、降順に並べ替えます。

並べ替えられた数字のリストを見て、連続する数字の各ペアの違いを見つけます。それぞれの違いの原因となった 2 つの数値のリストのインデックスを追跡します。この違いリストを並べ替えます。

差分リストの最大数を見てください。これで、2 つのピクセル セット間のドロップオフが最大になりました。どちらが大きかったか探しに行きます。このピクセル数以上のものはすべてドミナント カラーです。以下はすべてサブドミナント カラーです。これで、ドミナント カラーの数と、それらが何であるかがわかります。

そこからは、やりたいことを簡単に実行できるはずです。

これが機能しないのは、ノイズの一部がストリップと同じ色であり、データが破損した場合のみです。

この場合、別のアプローチを使用します。これは、最初のケースでも使用できます-実行を確認します。ピクセルを調べて、新しい色を見つけるたびに、同じ色の次のピクセルがいくつあるかを調べます。

前に説明した方法を使用して、同じ結果を得るために色を優勢と非優勢にクラスター化します。

どちらの場合も、画像が縦縞であることがわかっている場合は、見ている色の横線の数を制限して、処理を高速化できます。

于 2013-02-02T04:00:17.627 に答える