2012-02-06 2 views
-1

C#ではなく、考えることによって。私はbimtapウィッヒは、4X4ピクセルである必要があり例えばロジックでヒストグラムの平均3つの最高値を計算するにはどうすればよいですか?

は、ヒストグラムのサイズは16

ことを意味します今私は0から9

に例えば10色を持っており、ビットマップイメージが黒になると言うことができます0の色のすべてのピクセルは0になりますので、16ピクセルあります。

カラー0の2番目の例私は3色の色を持っています1色は1色です2色は4色です4色は2色5色は6色と6色それぞれに1つありますピクセル。

ここで、最も高い3つの値を計算するにはどうすればよいですか。私がここで紙に描いたように私がそれを見ると、0、2、5の色が最も高いことがわかります。

しかし、アルゴリズムで簡単に計算するにはどうすればよいですか?

または、すべてのピクセルがカラー0である場合、どのように計算されますか?もしあれば、3つの最高値の結果はどうなりますか?

考え方は、ビットマップ4x4の例のヒストグラムを使用して、3つの最高値を計算することです。

ヒストグラムは正しい順序でそれらを修正することができるので、3つの最も高い値を計算するのに使いやすいはずです。

もう1つのこと:

私はそれが正しいと思います。ヒストグラムサイズは、常にビットマップサイズの幅*高さになりますか?例えば

ヒストグラムサイズは16

になりますので、それはヒストグラムのサイズは、このようなものについて30

答えて

0

方法である5x6た場合、私は4×4ピクセルでビットマップを持っている場合:

int[] Histogram = new int[10]; 
foreach(pixel p in bitmap) 
{ 
    histogram[p.color]++; 
} 
Array.Sort(Histogram); 
Console.WriteLine(Histogram[0]); 
Console.WriteLine(Histogram[1]); 
Console.WriteLine(Histogram[2]); 
関連する問題