すべての色をスキャンし、ハッシュテーブルを使用して、各色のピクセル数を追跡できます。
それらの数字を取り、対応する色を覚えて、降順に並べ替えます。
並べ替えられた数字のリストを見て、連続する数字の各ペアの違いを見つけます。それぞれの違いの原因となった 2 つの数値のリストのインデックスを追跡します。この違いリストを並べ替えます。
差分リストの最大数を見てください。これで、2 つのピクセル セット間のドロップオフが最大になりました。どちらが大きかったか探しに行きます。このピクセル数以上のものはすべてドミナント カラーです。以下はすべてサブドミナント カラーです。これで、ドミナント カラーの数と、それらが何であるかがわかります。
そこからは、やりたいことを簡単に実行できるはずです。
これが機能しないのは、ノイズの一部がストリップと同じ色であり、データが破損した場合のみです。
この場合、別のアプローチを使用します。これは、最初のケースでも使用できます-実行を確認します。ピクセルを調べて、新しい色を見つけるたびに、同じ色の次のピクセルがいくつあるかを調べます。
前に説明した方法を使用して、同じ結果を得るために色を優勢と非優勢にクラスター化します。
どちらの場合も、画像が縦縞であることがわかっている場合は、見ている色の横線の数を制限して、処理を高速化できます。