3

在下面的,

        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。我想检测图像的橙色、黑色和天蓝色物体。

4

1 回答 1

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()

于 2011-05-26T02:54:28.390 回答