Комментарии 31
А сравнивать центральные моменты будет не проще? Ну или хью моменты, если нужна более высокая точность…
Есть еще интересное решение определения нарисованных фигур, не зависимо от размера, ориентируясь на направления www.bytearray.org/?p=91
Не пробовали использовать нейронные сети?
Даже простой персептрон хорошо справится с такой задачкой
Даже простой персептрон хорошо справится с такой задачкой
НЛО прилетело и опубликовало эту надпись здесь
А тоже самое на java (adnroid)?
Допустим задача не сравнить фиггуры, а выпрямить линии поняв что за фигуры.
Допустим задача не сравнить фиггуры, а выпрямить линии поняв что за фигуры.
На java не пишу, но думаю не сложно будет реализовать на любом языке, т.к. в основе лежит базовая геометрия на плоскости.
Выпрямить линии — очень интересная тема, постараюсь написать библиотеку в ближайшее время.
Выпрямить линии — очень интересная тема, постараюсь написать библиотеку в ближайшее время.
Какая разница какой язык, имея базовые знания в любом С-подобном языке вы за полчаса портируете этот код. Без GUI, я имею в виду просто работу с массивами точек
Спасибо большое за статью! Великолепно, всегда была интересна эта тема, теперь вижу что никакой магии тут нет! Задам 2 вопроса:
1) Где во флэшке коэффициент «похожести» фигуры на заданную?
2) Сканируемые, например, finereader буквы тоже примерно по тем же алгоритмам определяются?
1) Где во флэшке коэффициент «похожести» фигуры на заданную?
2) Сканируемые, например, finereader буквы тоже примерно по тем же алгоритмам определяются?
0) Спасибо за оценку :)
1) В обоих флешках наверху в правой части есть ползунки для определения точности. В радиальном алгоритме можно задать количество проверяющих лучей, и процент разности расстояний между точками пересечения луча с полигонами. В габаритном алгоритме можно изменить размеры габаритных полигонов, и процент точек не попавших в заданные габариты.
2) Не уверен на счет букв, думаю там алгоритм немного другой. Мне тоже очень интересно это узнать, если кто владеет информацией — поделитесь.
1) В обоих флешках наверху в правой части есть ползунки для определения точности. В радиальном алгоритме можно задать количество проверяющих лучей, и процент разности расстояний между точками пересечения луча с полигонами. В габаритном алгоритме можно изменить размеры габаритных полигонов, и процент точек не попавших в заданные габариты.
2) Не уверен на счет букв, думаю там алгоритм немного другой. Мне тоже очень интересно это узнать, если кто владеет информацией — поделитесь.
Спасибо большое за ответ!
Все же не понял немного про точность. Я так понимаю, ползунок определяет максимально допустимую погрешность, а как понять насколько фигура, которую я нарисовал, «похожа» на треугольник или квадрат?
Все же не понял немного про точность. Я так понимаю, ползунок определяет максимально допустимую погрешность, а как понять насколько фигура, которую я нарисовал, «похожа» на треугольник или квадрат?
На сколько фигуры похожи — это условные параметры, можно придумать по разному. Например если взять отношение среднего значения расстояний между точками пересечения луча и контуров и среднего значения размера фигуры, можно определить процент. Это в случае лучевого алгоритма.
А если брать габаритный алгоритм, то можно определить максимальный и минимальный шаблон, между которыми вплотную(с учетом заданной погрешности) вписывается нарисованная фигура. Далее можно посчитать на сколько получившиеся габариты отличаются от исходного шаблона.
А если брать габаритный алгоритм, то можно определить максимальный и минимальный шаблон, между которыми вплотную(с учетом заданной погрешности) вписывается нарисованная фигура. Далее можно посчитать на сколько получившиеся габариты отличаются от исходного шаблона.
Я где-то читал, что файнридер разбивает картинку буквы на отдельные примитивы — окружности, дуги, линии, и по библиотеке символов находит ближайшие похожие буквы.
Очень интересно, надо попробовать.
вот вышла статья от ABBYY, где они подробно описывают эту технологию:
habrahabr.ru/company/abbyy/blog/225215/
habrahabr.ru/company/abbyy/blog/225215/
В джагернаут очень плохо распознаются фигуры. Очень часто они или распознаются или срабатывает другая фигура.
Вспомнилось Black&White сразу.
НЛО прилетело и опубликовало эту надпись здесь
Спасибо, весьма познавательно. Когда мне понадобилось распознавать движения использовал $1 Unistroke Recognizer. Работает весьма точно.
Вот презентация моего варианта решения подобной проблемы: www.content-review.com/articles/19318/ — надеюсь кому-то будет полезна.
Сложив в конце полученные расстояния между точками пересечения, мы получим некоторое значение. Чем меньше это значение, тем ближе нарисованная фигура к шаблону.
Думаю, математически более верно оперировать среднеквадратичным отклонением. (То, есть перед сложением возводить растояния в квадрат)
Статья мне очень понравилась. Спасибо.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Определение процента схожести нарисованного 2d-полигона с заданным шаблоном