如何过滤图像的红色调?我知道红色在 330° 和 30° 之间大约为零(在 OpenCV 中由 165 到 15 表示?)。我如何使用 InRange 方法使用该范围,因为在 360°(OpenCV 中为 180)处存在溢出?
最佳答案
我使用以下代码检测 HUE 颜色:
Mat img_hsv, dst ;
cap >> image;
cvtColor(image, img_hsv, CV_RGB2HSV);
inRange(img_hsv, Scalar(110, 130, 100), Scalar(140, 255, 255), dst );
其中 dst 是与 img_hsv 和 CV_8U 类型相同大小的 Mat。
你的标量决定过滤后的颜色。在我的例子中:
色调从 110 到 140
SAT从130到255
VAL 从 100 到 255
更多信息在这里: OpenCV 2.4 InRange()
我不确定使用超出 180 度范围的色调,但我认为您可以单独计算它们,然后添加生成的垫子。
关于opencv - 红色调过滤器 - emgucv/opencv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14636615/