用于颜色提取EMGUCV的图像HSV的值范围

时间:2011-05-26 02:43:07

标签: c# image-processing emgucv

以下,

        Image<Hsv, Byte> hsvimg = img.Convert<Hsv, Byte>();           
        Image<Gray, Byte>[] channels = hsvimg.Split();  
        Image<Gray, Byte> imghue = channels[0];         
        Image<Gray, Byte> imgsat = channels[1];
        Image<Gray, Byte> imgval = channels[2];         

        Image<Gray, byte> huefilter = imghue.InRange(new Gray(?), new Gray(?));            
        Image<Gray, byte> satfilter = imghue.InRange(new Gray(?), new Gray(?));
        Image<Gray, byte> valfilter = imgval.InRange(new Gray(?), new Gray(?));

不同颜色提取的不同通道(h,s,v)的范围值是多少?是0-255还是0-128。我想检测橙色,黑色和天蓝色物体的图像。

1 个答案:

答案 0 :(得分:2)

你可以尝试这样的橙色

 Image<Gray, byte> huefilter = 
                imghue.InRange(new Gray(Color.Orange.GetHue() - 10), 
                                     new Gray(Color.Orange.GetHue() + 10));   

-10和+10只是猜测而且可能很宽泛。只是玩它,看看它有用。

satfilter您可以使用Color.Orange.GetSaturation()

对于第三个,我假设您可以使用Color.Orange.GetBrightness()