Страница 1 из 1

распознавание цифр и символов

Добавлено: 28 июл 2015, 00:30
Mstislav
Добрый день. Нужен совет

Есть карта (кусочек приложил), где на линиях расположены штрихи и к ним привязаны цифры.
Хорошобы в автомате штрихи на линиях перевести, например в точки, и привязать к ним цифры.
Пробовал и так и этак, но не вышло.

Подскажите алгоритм действий.

Спасибо, Мстислав.
3.01_условные.JPG
3.01_условные.JPG (92.77 КБ) 11063 просмотра

Re: распознавание цифр и символов

Добавлено: 28 июл 2015, 10:38
Константин Г.
Добрый день.

Я правильно понимаю, что у Вас уже есть векторные штрихи и цифры? Если да, то есть несколько вариантов преобразования штрихи в точки. Можно, например, так :
Сгенерировать пометки (ошибок) утилитой "Проверка топологии" в вершинах степени большей или равной 3, а затем преобразовать их в точки. В этом случае получим точки строго в местах пересечений, но при этом могут быть созданы лишние точки. Пометить все точки, пройти по ним, лишние удалить, а нужные атрибутировать. Или же, если подписи уже есть, выполнить копирование атрибутов.

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

Re: распознавание цифр и символов

Добавлено: 28 июл 2015, 11:37
Mstislav
Спасибо.

Буду пробовать. Волшебные слова - "утилитой "Проверка топологии" . Как думаете цифры на карте можно будет распознать ?

Re: распознавание цифр и символов

Добавлено: 28 июл 2015, 11:48
Константин Г.
Пожалуйста.
Цифры в автомате... нет, в будущих версиях программы думаю появится возможность перечеркиванием распознавать текст, но даже в этом функционале не вижу смысла на таком материале - слишком много неоднозначностей будет при переносе атрибутов. Намного проще идти по помеченным объектам, чередуя вбивание нужных цифирек и нажатия ввод для перехода к следующему объекту.

Re: распознавание цифр и символов

Добавлено: 07 авг 2015, 20:55
Mstislav
по вашему совету все отлично получилось. еще (кроме фильтраций линий и мусора) добавил оптимизацию линий. Вообще прекрасно

Re: распознавание цифр и символов

Добавлено: 12 авг 2015, 08:22
Григорий Степанов
Несколько замечаний по предварительной подготовке векторных данных:

1. Растровый материал очень неплохой. Так как цифры не имеют контактов с линиями их легко будет отделить друг от друга. Это можно сделать утилитой Фильтрация связанного мусора. Собственно, именно для этого она и предназначена. Параметры утилиты позволяют автоматически распознать и удалить векторные конгломераты отвечающие ряду условий:
  • конгломерат образуют не менее и не более элементов, чем задано;
  • конгломерат вписывается в аппроксимирующий прямоугольник с диагональю меньше заданной;
  • конгломерат компактен - отношение длины всех его линий к занимаемой ими площади высоко;
  • конгломерат не имеет связей с протяжёнными линиями или таких связей мало.
Звучит всё это страшновато, но на деле всё просто. Нажимаем кнопку "Сбросить" и просто указываем на образцы векторизованных цифр на экране. Подобрав параметры, применяем утилиту и сохраняем набор параметров как стратегию для использования в следующих аналогичных проектах.

2. Утилитой Фильтрация линий стягиваем в точку концы линий образующие "X-склейки". Дело в том, что при оскелечивании линий места их крестообразных пересечений крайне редко "проходят" через одну точку. Обычно в месте пересечения образуется короткий "мостик" - в нашем случае он помешает точно определить точки пересечений линий засечками, а затем и избавиться от их изображений. Для этого включаем опцию "Сшить накрест".
Как и в большинстве утилит, настройка параметров сводится к выбору типа обрабатываемого артефакта, сбросу его текущих параметров и указанию образцов артефактов на экране.

3. Оптимизируем форму линий. Для нас важны только протяжённые линии - остальное это мусор;

4. Утилитой Проверка топологии находим места пересечений линий штрихами и примыканий к линиям "недоперечёркиваний" - мы их назывем "шипами".

5. Конвертируем пометки ошибок в точки в местах засечек на линиях утилитой Преобразование объектов в точки на отдельном слое.

6. Утилитой Фильтрация линий избавляемся от "циклов" и уже не нужных "штрихов" и "шипов". Дополнително, векторной "Стёркой" убираем уцелевший посторонний мусор. Топологическим редактором в режиме "Стягивание вершин" уточняем позиции точек пересечения протяжённых линий.

7. Утилитой "Коррекция топологии" окончательно "сажаем" точки построенные в местах засечек на линии. Для этого линии указываем как Опорный слой, а точки как Корректируемый слой.

Далее выполняем аттрибутирование, точек. Если автоматический переход был совершен на постороннюю точку, просто нажимаем на клавишу "Tab". В ET это аналог клавиши "Del", только расположена эта клавиша гораздо удобней...