在下面的,
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(?));
不同颜色提取的不同 channel (h,s,v)的范围值是多少?是 0-255 还是 0-128。我想检测图像的橙色、黑色和天蓝色对象。
最佳答案
你能试试这样的橙色吗
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()
关于c# - 用于颜色提取 EMGUCV 的 Image HSV 值范围,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6133158/