使用Emgu CV从图像中找出最突出的颜色

|| 所以,我有一张脸的图片: http://i.stack.imgur.com/gsZnh.jpg 我需要能够使用Emgu CV从中确定最主要/最突出的RGB和YCrCB值。感谢您的帮助。     
已邀请:
您应该首先获取每个颜色通道的直方图。然后,您可以使用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; 
您也可以对“饱和度”和“价值”渠道执行相同的操作。     
您可以使用直方图找到颜色的分布,然后选择最大值作为主色。现在暂时还不了解Emgu CV中的相关功能。祝好运     

要回复问题请先登录注册