1

だから、私はこの顔の画像を持っています: http://i.stack.imgur.com/gsZnh.jpg そして、Emgu CV を使用して、最も支配的/顕著な RGB と YCrCB 値を決定できるようにする必要があります。お手伝いありがとう。

4

2 に答える 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 に答える