Можно ли сканировать логические ворота с нарисованного от руки изображения

Я думаю о проекте для своего университета, он понравился преподавателям, но я не уверен, что это вообще возможно.

Я пытаюсь сделать приложение для Android. Что я хочу сделать, так это сфотографировать нарисованную от руки логическую схему (имеющую вентили И, ИЛИ, НЕ...), распознать вентили, создать схему в мобильной версии и запустить ее на всех возможных входах.

Пример логической схемы (предположим, что она нарисована от руки)

введите здесь описание изображения

Для этого мне придется сделать симулятор на мобильном телефоне, что я не думаю, что это сложная часть. Проблема в том, как распознать ворота по картинке.

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

На самом деле это для моего FYP, я не могу найти хороших идей и должен представить это в четверг.


person UmeRonaldo    schedule 12.05.2015    source источник


Ответы (1)


вам нужно будет сделать какое-то распознавание объектов. Самый простой способ (концептуально) идентифицировать ворота - это просто провести корреляцию между изображением и банком ворот или «алфавитом». Вы запускаете шаблон ворот по всему изображению и смотрите для самой высокой корреляции это означает, что он точно соответствует шаблону, и вы, вероятно, нашли интересующие вас ворота. вот несколько интересных постов s0

Простой текстовый ридер (OCR) в Matlab

Распознавание символов MATLAB Optical - нужна помощь

Само по себе это может быть сложной задачей, но вы можете упростить проблему, добавив ограничения.

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

  2. Если вы используете миллиметровую бумагу с цветными линиями (например, синими), а пользователю разрешено использовать только ручку/карандаш не синего цвета, вы МОЖЕТЕ легко удалить сетку при обработке изображения, отфильтровав синий канал, и все равно иметь чистое изображение для обработки.

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

изменить

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

person andrew    schedule 12.05.2015