Вот как работает мой первый подход, но он не надежен.
аюсь обнаружить узор на объекте на зеленом поле, состоящем из трех цветов (два розовых маркера по бокам и синий в середине), расположенных как светофор.
Сначала я попытался преобразовать изображения с веб-камеры в цветовое пространство hsv и изолировать цвет с помощью cvInRangeS, но это стало проблематичным, так как свет менялся в комнате в течение дня, или я получал ложные срабатывания или терял следы объектов.
Затем я попробовал SURF, изменив find_obj.cpp, проблема в том, что opencv может обнаруживать только 2 точки серфинга на моем маркере, чего недостаточно, чтобы найти его по коду. Кажется, мне нужно как минимум 4, я пытался играть с параметрами серфинга, но это ничего не изменило.
Также во время поиска в Google я столкнулся с этим,
http://wiki.elphel.com/index.php?title=OpenCV_Tennis_balls_recognizing_tutorial&redirect=no
в котором говорится, что я также могу использовать машинное обучение, чтобы выбрать интересующую меня цветовую гамму, но я не смог найти никакой информации о том, как это сделать.
У меня вопрос, есть ли в OpenCV что-нибудь, что позволило бы мне обнаружить маркер?
РЕДАКТИРОВАТЬ: Еще один вопрос, касающийся попыток тренировать волосы. Мой фон всегда будет одного цвета с одной и той же поверхностью, используя один и тот же маркер для объекта. Могу ли я обучить классификатор, скажем, 20 положительных или 20 отрицательных изображений, или мне все еще нужны тысячи изображений, чтобы получить его? признать?