Разбиением картинки на символы

267
14 ноября 2017, 21:59

Добрый день, друзья! Встала предо мной задача реализация простенького распознавания текста с картинки (условие: чужеродные библиотеки для этого использовать нельзя). Собственно, как я продумывал алгоритм:

  1. Беру изображение
  2. Перевожу его в монохром (только чёрное и белое)
  3. Составляю bool-карту изображения, помечая чёрные пиксели, как true.
  4. Иду по этой карте. Если элемент=true, то рекурсивно обхожу вокруг него и всех связанных true-значений. То есть я считал, что символом считается непрерывная ломаная. Записываю полученный символ в массив, приведя его к общему размеру (10х14) (Записываю следующим образом: создаётся double[,] карта, где "активный" пиксель помечается 0.5, а "неактивный" - -0.5
  5. Все полученные карты загоняю в ранее обученную нейронную сеть
  6. Читаю ответ

С построением нейронной сети проблем не возникло. Построил и обучил пока под русский алфавит. Но пока обучал, я наткнулся на во всех смыслах "белые пятна" своего алгоритма разбиения изображения на символы:

  1. Я внезапно вспомнил, что из моей логики выпадают символы "й, ё, ы" и подобные. Ибо они не являются монолитными. "ё" так вообще читается аки 3 раздельных символа
  2. Также, если на изображение падала тень, то при переводе в монохром нередко возникает разрыв буквы, так что она тоже становится немонолитной (но 99% своей формы сохраняет, так что попал бы этот обрывок в нейронную - ответ был бы верным)
  3. Я не продумал реализацию пробелов. То есть символы с горем пополам читаются, но так как пробел условен не неким символом, а расстоянием между ними, он также выпадает из общей логики

Направьте меня, пожалуйста, на путь истинный по части разбиения изображения на символы, дабы "разорванные" буквы все равно представлялись в виде одной, а пробелы таки считывались. Возможно, вы где-нибудь видели реализацию такого вот дела. В общем, таков мой вопрос и просьба о помощи

READ ALSO
C# Построение графиков по БД [требует правки]

C# Построение графиков по БД [требует правки]

Здравствуйте,дайте пожалуйста ссылку на ресурс с подробным разбором построения графиков на Windows FormsМоя задача, брать данные с БД какие записываются...

227
Изменение метаданные docx на C# (для цифровой подписи)

Изменение метаданные docx на C# (для цифровой подписи)

Хочу добавить электронную цифровую подпись к документу docxХочу добавить хэш в метаданные документа, чтобы он не находился явно в тексте документа

203
Таблица из Excel в другую таблицу

Таблица из Excel в другую таблицу

Допустим есть 3 столбцаВ 1 столбце номер(a1), во втором название(b1), в третьем описание(c1)

250