2017-01-12 4 views
0

Я разрабатываю приложение opencv в java, где мне нужно обнаружить разные метки на продукте. I have attached the input image below В этом изображении мне нужно идентифицировать знак non veg.OpenCV - Идентификация конкретного объекта в изображении с помощью Java

Поскольку я новичок в этом, мне нужна помощь, чтобы узнать, какие концепции могут быть использованы для этого. Мне нужно идентифицировать these marks на входных изображениях

+0

Вы можете попробовать ** сопоставление шаблонов ** для этой проблемы. Измените размер логотипа изображения «не-veg» на переменные размеры и запустите движущееся окно над исходным изображением (образ пищи). Проверьте, где именно совпадающий логотип соответствует исходному изображению. –

+0

«логотип veg & non-veg» иногда имеет цветовые вариации. – user3429291

+0

ok сначала проверьте, соответствует ли шаблон (логотип) изображению для определенного размера. Если это произойдет, вы решите, будет ли он «зеленым» или «красным». Вы можете задать диапазон для красного и зеленого цветов в цветовом пространстве HSV! –

ответ

0

После довольно тяжелой борьбы я смог придумать грубое решение.

Первый, я отделил и овощи не-Вег этикетки.

enter image description here & enter image description here

Теперь для того, чтобы получить идеальное прилегание не-Векло наклейки над изображением I изменением размеров его до определенного уровня:

small = cv2.resize(nveg, (0,0), fx=0.12, fy=0.12) 

enter image description here

Сейчас я провел Соответствие шаблону:, как я сказал в разделе комментариев. Чтобы узнать больше об этой теме VISIT THIS PAGE.

Использование этого я получил «максимально возможное место» ярлыка non-veg на изображении.

res = cv2.matchTemplate(food, small, cv2.TM_CCOEFF_NORMED) 
min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res) 

В следующем внимании изображения получки на яркое пятно в положении не-Вег знака:

enter image description here

Теперь, используя переменную max_loc, я добавил значение кортежа к размеру в измененной не-Вег этикетки и обрамлен его с прямоугольником, как показано ниже:

enter image description here

Вы можете увидеть черное пятно на отметке не-Век, когда я назвал его помощью max_loc:

enter image description here

Надеется, что это помогло. :)

+0

В этом ответе я явно изменил размер метки не-veg методом проб и ошибок.Еще лучшее решение - автоматизировать функцию «resize», чтобы получить наилучшее соответствие. Таким образом, он может запускаться для нескольких изображений. :) –

+0

работает ли он на разных продуктах? Спасибо. – user3429291

+0

Как я уже упоминал в своем предыдущем комментарии, вы должны изменить размер шаблона без вегетации, чтобы получить наилучшее соответствие для разных изображений. –

Смежные вопросы