Распознать логотип в растровом изображении - Android - PullRequest
3 голосов
/ 17 февраля 2012

Я хотел бы определить, есть ли изображение логотипа в поле зрения пользователя, например, был ли логотип StackOverflow напечатан на бумаге и просматривался через камеру. Или для менее сложного подхода, скажем, что я хотел бы обнаружить его в растровом изображении. Я хотел бы узнать, если один конкретный логотип - можно жестко закодировать его в приложение.

Возможно ли даже использование библиотек с открытым исходным кодом, таких как OpenCV, или это потребует много-много человеко-часов для реализации?

Ответы [ 2 ]

2 голосов
/ 17 февраля 2012

Это очевидный случай совпадения инвариантных моментов (см. Википедию о Ху Моментах). И я разрабатываю бесплатную библиотеку с открытым исходным кодом, которая использует ее для распознавания текста на Android:

http://sourceforge.net/projects/javaocr/

Существуют демоверсии Android, демонстрирующие полное обходное путешествие - отбор проб, обучение и распознавание. Вот рыночное приложение, демонстрирующее его:

https://market.android.com/details?id=de.pribluda.android.ocrcall&feature=search_result#?t=W251bGwsMSwxLDEsImRlLnByaWJsdWRhLmFuZHJvaWQub2NyY2FsbCJd

(поддержка библиотеки через списки рассылки)

Я бы сказал, что реализация распознавания только одного логотипа займет у меня около 5-6 часов.

Дополнение: OpenCV - большая библиотека, написанная на C, и просто интегрировать ее в android - главная PITA

1 голос
/ 17 февраля 2012

Это возможно с opencv, но все равно может потребовать много-много человеко-часов в зависимости от вашего определения лотов и лотов.

На более серьезной ноте: начните с совпадение шаблона ,Если вам этого недостаточно, возможно, SIFT - .Кроме того, search на этом сайте , есть несколько довольно хороших обсуждений о подобных вещах.

...