Я хочу распознать фигуры, такие как круг, треугольник и прямоугольник, который нарисован на экране. Моя главная цель - это рисовать фигуру на экране, и мне нужен код для распознавания этой формы. Как я должен подходить к этой проблеме?Распознавание формы Android на экране
ответ
Вы должны изучить GestureOverlayView. Хороший учебник: http://www.vogella.com/articles/AndroidGestures/article.html
То, что вы пытаетесь достичь может быть довольно сложно, но мне пришлось реализовать что-то подобное некоторое время назад, и вот тот подход, который я использовал:
- придерживаться черный & белые рисунки
- имеют небольшую базу данных (черные & белые) рисунки (50 или около того) с фиксированным разрешением, скажем 256x256 (вы можете сохранить их в sqlite как бинарные капли, если хотите). Убедитесь, что вы используете прилично толстые линии для этих рисунков (10 пикселей должны быть в порядке или примерно вдвое больше, чем входной чертеж пользователя). Кроме того, чертежи должны быть нормализованы, что означает, что они должны иметь по крайней мере один из их размеров размером с изображение.
- извлечь форму, нарисованный пользователем и обработать его:
а), если он имеет соотношение сторон близко к площади, а затем просто обрезать белое пространство вокруг него и увеличить таким образом, что он имеет то же самое как ваши изображения в базе данных
b) В противном случае это, скорее всего, будет иметь одно измерение примерно в два раза больше, чем другое, и в этом случае вы обрезаете пустое пространство, поверните его, чтобы высота была самой большой, увеличьте до 256x128, а затем добавить на обе стороны 64 px пробела.
- вам нужно будет сравнить ваш рисунок с каждым из изображений вашей базы данных за пикселем и определить количество черных пикселей, которые перекрываются для каждого изображения базы данных. Затем вы сортируете эти цифры, и вы получите лучший результат. Даже если наилучшее совпадение имеет менее 20% перекрывающихся пикселей, результаты обычно хороши.
- Потому что некоторые формы можно считать одинаковыми, даже если они повернуты (представьте себе различные способы размещения треугольника в изображении: один кончик, указывающий вверх или вниз, или в сторону одной стороны и т. Д.), Вы, вероятно, захотите вращайте свой входной чертеж в 12 - 24 раза (на 15 - 30 градусов на каждом шаге) и сравните каждое вращение с каждым изображением в вашей базе данных. Учитывая, что этот шаг, скорее всего, потребует большой вычислительной мощности, вы можете подумать о сохранении всех поворотов ваших исходных чертежей базы данных в базе данных в виде разных изображений, тем самым делая базу данных более крупной, но экономя при этом усилия по вращению входного изображения , что является дорогостоящим.
Учитывая, что приведенный выше алгоритм является немного ресурсоемкой, вы можете подумать о том, что у вас есть сервер, который может выполнять фактические сравнения, особенно если вы хотите добавить много изображений в свою базу данных. Поскольку я уже реализовал этот алгоритм для демонстрационного приложения, я уже могу сказать вам, что вам придется делать много операций с пикселями. Кроме того, вращение изображений с помощью Android SDK может быть раздражающим, поскольку оно изменяет размеры изображения ...
Если вы чувствуете себя авантюристом, вот несколько статей, описывающих современные алгоритмы решения этой проблемы: «Shape contexts enable efficient retrieval of similar shapes «Грег Мори, Серж Белонге и Джитендра Малик (2001) и« Shape Matching: Similarity Measures and Algorithms »Ремко К. Вельткампа (2001). Однако математика может быть немного тяжелой.
- 1. Распознавание образов (распознавание формы)
- 2. Распознавание формы на изображении
- 3. Распознавание номеров на экране, цифровые номера
- 4. Распознавание маркеров на Android (распознавание кубиков Рубика)
- 5. Форсирование формы на экране
- 6. распознавание изображений на android
- 7. Распознавание формы - подсчет манго
- 8. Распознавание голоса в Android
- 9. Обработка изображений-Распознавание формы
- 10. Распознавание формы холста в функции
- 11. Непрерывное распознавание речи Android
- 12. Текст на экране Android на экране
- 13. распознавание дефектов формы openCV
- 14. Распознавание вещей на экране и нажатие на него в java
- 15. Android распознавание изображения
- 16. Распознавание объектов на Android-камере
- 17. распознавание формы на IOS объектив-c
- 18. Изображение на экране Android
- 19. Экран на экране Android
- 20. Распознавание формы после обнаружения края
- 21. Граничное распознавание формы, игнорируя масштабирование
- 22. Android - Распознавание лиц
- 23. Android-распознавание голоса
- 24. PhoneGap Android Распознавание речи
- 25. Распознавание лиц в Android?
- 26. Android Распознавание речи
- 27. Android touch событие на главном экране не на любом экране
- 28. Android распознавание динамиков
- 29. Android распознавание голоса?
- 30. Непрерывное распознавание речи Android
Добро пожаловать в stackoverflow. Что вы пытались решить вашу проблему?Пожалуйста, прочитайте следующее и улучшите свой вопрос: http://meta.stackexchange.com/questions/156810/stack-overflow-question-checklist –