在以下内容中,
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?我想要检测一个图像的橙色,黑色和天蓝色的对象。
发布于 2011-05-26 10:54:28
你可以试试这个橙色的吗?
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()
https://stackoverflow.com/questions/6133158
复制相似问题