Какой диапазон цветов HSV я должен использовать в openCV для фильтрации синих пикселей? - PullRequest
0 голосов
/ 29 апреля 2020

Я использую различные каскадные классификаторы OpenCV для обнаружения транспортных средств, дорожных знаков c и улыбок. Чтобы получить лучшие результаты, я пытаюсь отфильтровать синий цвет фона пикселей. Для этого я применяю фильтр HSV, но меня не устраивает цветовой диапазон.

Чтобы выбрать только белые, красные и желтые пиксели, как определить нижний и верхний диапазоны фильтра?

Test Image

Когда я применил фильтр HSV к изображению в этих диапазонах, я получил такой результат:

enter image description here

1 Ответ

3 голосов
/ 29 апреля 2020

Итак, вы установили диапазон 0..45 для оттенка, что означает 0..90 градуса вокруг колеса оттенка. Синий цвет находится под 240 градусами, но в OpenCV для Hue есть коэффициент масштабирования 2, чтобы 360 градусов оттенка стали равными 180, потому что они вписываются в диапазон uint8, равный 0..255. Таким образом, вы, вероятно, хотите 120, поэтому установите диапазон 105..135 и проверьте.

Вы установили диапазон 0..255 для Насыщенности. Это означает, что вам все равно, насколько насыщенный / яркий или ненасыщенный ваш блюз, даже серый будет в порядке. Поэтому вам нужно увеличить значение от 0 до 50 +.

. Вы установили значение в диапазоне 100..255, что означает, что вам нужны только светлые голубые, а не темные. Уменьшите значение 100, если темный синий в порядке.

Вы также можете загрузить свое изображение в GUI здесь Натани , который динамически показывает выбор. Если вы запустите это, вы получите следующие значения:

(hMin = 69 , sMin = 37, vMin = 0), (hMax = 134 , sMax = 255, vMax = 255)

enter image description here

...