Адаптивное пороговое значение OpenCV для изображения HSV

Мы (моя группа и я) хотим иметь возможность отслеживать руку (в основном кончик указательного пальца). Рука в основном того же цвета, что и лицо на картинке, но, как вы можете видеть, мы получаем много шума. Очень хорошо работает с черным «экраном» за рукой.

Теперь проблема в том, что адаптивная пороговая установка полезна только на изображениях в градациях серого, и поэтому не очень хорошо определяет руку.

Я пытался поискать в Google HSV Adaptive Thresholding, но мне не повезло, поэтому я решил, что у stackoverflow есть несколько отличных идей.

РЕДАКТИРОВАТЬ: Текущий HSV -> Двоичный порог:

inRange(hsvx, Scalar(0, 50, 0), Scalar(20, 150, 255), bina);

Изображение здесь


person Oliver G Hjermitslev    schedule 03.11.2015    source источник
comment
Разделите изображение HSV на отдельные каналы.!! создайте трекбар для каждого из каналов.!!Вы можете изменять значения на трекбаре и назначать значения inRange для фильтрации значений пикселей.   -  person Arjun    schedule 03.11.2015


Ответы (2)


Я предлагаю вам использовать цветовую гистограмму для отслеживания. Camshift делает это, например, с большим успехом.

В OpenCV есть пример кода camshift. См. http://docs.opencv.org/master/db/df8/tutorial_py_meanshift.html (очень краткое объяснение) или https://github.com/Itseez/opencv/blob/master/samples/cpp/camshiftdemo.cpp (пример кода)

Если вы хотите использовать пороговое значение, вы уже правильно сказали, что не устанавливаете пороговое значение для V-канала. Я бы все же предложил делать отдельные адаптивные пороги для H и S.

person ypnos    schedule 03.11.2015

Я бы посоветовал вам использовать алгоритм обратной проекции гистограммы.

Обратная проекция — это способ записи того, насколько хорошо пиксели данного изображения соответствуют распределению пикселей в модели гистограммы. Вы можете указать модель гистограммы, используя вручную выбранный набор пикселей. Этот алгоритм выводит изображение, где каждый пиксель имеет значение вероятности того, что цвет этого пикселя является цветом кожи (похож на кожу). Затем вы можете указать порог вероятности для настройки производительности.

Это позволит вам найти области телесного цвета на изображении.

Подробнее см.:

person MaciekS    schedule 03.11.2015