Hendrik Wiese
Hendrik Wiese

Reputation: 2219

Filter for red hue - emgucv/opencv

How do I filter an image for red hue? I understand that red lies around zero between 330° and 30° (represented by 165 to 15 in OpenCV?). How can I use that range with the InRange method as there is an overflow at 360° (180 in OpenCV)?

Upvotes: 4

Views: 2538

Answers (1)

Miro Bucko
Miro Bucko

Reputation: 1133

Im detecting HUE colour using the following code:

Mat img_hsv, dst ;
cap >> image;
cvtColor(image, img_hsv, CV_RGB2HSV);
inRange(img_hsv, Scalar(110, 130, 100), Scalar(140, 255, 255), dst );

where dst is Mat of the same size as img_hsv and CV_8U type.
And your scalars determine the filtered colour. In my case its:

HUE from 110 to 140
SAT from 130 to 255
VAL from 100 to 255

more info here: OpenCV 2.4 InRange()

I'm not sure about using a hue that overflows the 180 range but I think you can calculate them separately and then add the resulting Mats.

Upvotes: 1

Related Questions