Черный цвет обнаружения объектов HSV диапазон в OpenCV

Каков диапазон обнаружения объектов черного цвета?

я попробовал следующий код

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

но это не работает.

5

Решение

Для черного и белого цветов в диапазоне HSV необходимо установить максимальный диапазон оттенка (от 0 до 180) и насыщенность в максимальном диапазоне (от 0 до 255). Вы можете играть со значением, например, от 0 до 30 или 40 для черных и от 200 до 255 для белых.

// 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);

Или вы можете использовать интерфейс C ++:

// 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);
11

Другие решения

Черный цвет в HSV а также HSL цветовое пространство, обнаруживается с низким значением (или яркостью в HSL).

Белый цвет в HSL обнаружен с высоким значением.
Белый цвет HSV обнаружен с высокой легкостью и низкой насыщенностью.

для белых

cv::inRange(imgHSL, cv::Scalar(0, 0, 200, 0), cv::Scalar(180, 255, 255, 0), imgThreshold);

или же

cv::inRange(imgHSV, cv::Scalar(0, 0, 200, 0), cv::Scalar(180, 20, 255, 0), imgThreshold);
2

По вопросам рекламы [email protected]