2012-03-16 7 views
1

イメージファイルの大部分の色を見つけ、それをスイングフレームの背景に設定したいと考えています。私は何をすべきか?javaの画像ファイルで多数の色を見つける方法はありますか?

+0

どのような画像ファイルですか?イメージファイルを読む方法を知っていますか? – Lucas

+0

ファイルjpeg、png、gif、またはその他のファイルです。あなたが取ることができるサンプル画像ファイル。 –

+0

イメージファイルで最も頻繁に使用される色を特定する方法http://sourceforge.net/projects/jiu/forums/forum/51534/topic/3883065またはhttp://www.daniweb.com/software-development/java /スレッド/ 335957 –

答えて

1

このアルゴリズムではRGB値を抽出する必要があります。これはRGB値を与えるアルゴリズムです。また、画像全体をいくつかの部分(例:9角形)に分割し、RGB値を取得する必要があります。このようにして、画像内でより多くの色を取得する必要があります。 thisがお手伝いします。

1

あなたはイメージの各ピクセルをトラバースして、その色を取得することでこれを行うことができます。見つかった色ごとにインクリメントカウンタを設定します。

1

すべてが効率化します。文字通り画像のRGB値をすべて読み取ってモードを見つけることができますが、それには時間がかかります。

むしろ、私は単に画像を分割して100個の正方形などと言うだけです。私たちは、各四角形の中央にある値をとります。どちらが最も表示されるかは、おそらく最も一般的な色です。はい、これは一種の危険です。なぜなら、画像がちょうどあなたが評価したすべてのピクセルで使用される色が少なくなった場合です。あなたが(0,2,0)や(0,0,0)のような類似したrgbを得るならば、あなたは単にそれらを同じものとして扱います。

次にすべきことは、画像の約10%をサンプルとして取ることです。あなたは適切な答えを得るでしょう。したがって、画像が500ピクセルの場合は、サンプルとして50ピクセルを使用し、画像に沿って均等に分散します。

これは、画像全体のチェックに非常に時間がかかり、理にかなっていないため、精度と速度の間にトレードオフがあります。

関連する問題