Black color object detection HSV range in opencv

sushma ahirwar picture sushma ahirwar · Aug 20, 2014 · Viewed 35.8k times · Source

What is the range of Black color object detection?

i tried following code

cvInRangeS(imgHSV, cvScalar(0, 0, 0, 0), cvScalar(0, 255, 255, 0), imgThreshold);

but its not working.

Answer

Elvis Dukaj picture Elvis Dukaj · Aug 20, 2014

For black and white colors in HSV range you have to set hue at maximum range (0 to 180), and saturation at maximum range (0 to 255). You can play with the value, for example, 0 to 30 or 40 for black, and 200 to 255 for white.

// for black
cvInRangeS(imgHSV, cvScalar(0, 0, 0, 0), cvScalar(180, 255, 30, 0), imgThreshold);

// for white
cvInRangeS(imgHSV, cvScalar(0, 0, 200, 0), cvScalar(180, 255, 255, 0), imgThreshold);

Or you can use the C++ interface:

// for black
cv::inRange(imgHSV, cv::Scalar(0, 0, 0, 0), cv::Scalar(180, 255, 30, 0), imgThreshold);

// for white   
cv::inRange(imgHSV, cv::Scalar(0, 0, 200, 0), cv::Scalar(180, 255, 255, 0), imgThreshold);