2016年7月6日 星期三

[emguCV]直方圖Histogram--未整理

想要產生這樣的一張直方圖很簡單,只需要短短幾行程式碼就可以達成。

Image<Bgr, Byte> Img = new Image<Bgr, byte>(@"圖片位置");
histogramBox1.GenerateHistograms(Img, 256);
histogramBox1.Refresh();
可是用這種方式產生出來的直方圖數據沒有辦法被程式拿來利用。
這種時候我們就要用到DenseHistogram這個class了

Image<Bgr, Byte> Img = new Image<Bgr, byte>(@"圖片位置");
DenseHistogram Histo = new DenseHistogram(256, new RangeF(0, 256));
float[] BlueHist;

Histo.Calculate(new Image<Gray, Byte>[] { Img[0] }, false, null);
BlueHist= Histo.GetBinValues();
histogramBox1.AddHistogram("Blue", Color.Blue, Histo, 256, new float[] { 0, 256 });
histogramBox1.Refresh();
用DenseHistogram.Calculate計算直方圖,其中的bool為false時會先清除原本的數據。
而要取出計算結果只要使用.GetBinValues就可以得到計算結果的數據了。

沒有留言:

張貼留言