だから、私はこの顔の画像を持っています: http://i.stack.imgur.com/gsZnh.jpg そして、Emgu CV を使用して、最も支配的/顕著な RGB と YCrCB 値を決定できるようにする必要があります。お手伝いありがとう。
2421 次
2 に答える
1
まず、すべてのカラー チャネルのヒストグラムを取得する必要があります。次に、minmax 関数を使用して、最も優勢な色を取得できます。
私が投稿しているコードは HSV 画像用です。色空間のチャンネル名を変更できます。
Image<Gray, Byte>[] channels = hsv1.Split();
Image<Gray, Byte> ImgHue = channels[0];
Image<Gray, Byte> ImgSat = channels[1];
Image<Gray, Byte> ImgVal = channels[2];
DenseHistogram histo1 = new DenseHistogram(255, new RangeF(0, 255));
histo1.Calculate<byte>(new Image<Gray, byte>[] { ImgHue }, true, null);
float minV, maxV;
int[] minL;
int[] maxL;
histo1.MinMax(out minV, out maxV, out minL, out maxL);
string mystr = Convert.ToString(maxL[0]);
label1.Text = "Hue= " + mystr;
Saturation チャンネルと Value チャンネルについても同じことができます。
于 2012-08-29T14:07:42.883 に答える
0
ヒストグラムを使用して色の分布を見つけ、最も高い値をドミナント カラーとして選択できます。Emgu CV の関連機能については今のところわかりません。幸運を
于 2012-01-23T15:06:01.290 に答える