я начал экспериментировать с c ++ и opencv, потому что хочу научиться обрабатывать изображения.
Теперь мое первое упражнение - создать детектор кожи с помощью calcHist и calcBackProject .
Но я не понимаю несколько вещей:
- статистическая интерпретация обратного проекта и почему она называется «обратный проект»
- у меня есть хорошее понимание того, в каком диапазоне находится параметр
calcBackProject
. Но я действительно застрял с параметром диапазонов вcalcHist
функции. - Для большей точности обнаружения я думаю, что было бы неплохо использовать обратную проекцию на большем количестве уровней: в каждом канале RGB и ANS в каждом канале HSV. Но я не знаю, как я могу объединить разные результаты
calcBackProject
отдельных каналов RGB и HSV.
И я думаю, что мое плохое понимание вызвано отсутствием теории о том, что я делаю с этими двумя методами (см. Первый пункт). Поэтому, пожалуйста, объясните мне на простом английском.
Ответы:
Посмотрите, что такое обратная проекция в уроках openCV
Гистограмма изображения измеряет распределение цвета (и яркости) пикселей в изображении.
Если вы берете изображение и определяете область интереса, например. руку, и рассчитать гистограмму пикселей в этом объекте.
Затем возьмите эту гистограмму и второе изображение и по существу полностью измените процесс - вы выбираете пиксели во втором изображении, которые соответствуют гистограмме из первого. Именно этот обратный процесс дает ему название обратной проекции.
Затем вы делаете предположение, что области изображения во втором изображении, которые имеют такое же распределение цвета, что и объект в первом изображении, являются изображением того же (или подобного) объекта.
источник