Сопоставление символов на основе текстового шаблона «изображение»

#java #ascii #pattern-matching #design-patterns

#java #ascii #сопоставление с шаблоном #шаблоны проектирования

Вопрос:

Каким был бы хороший способ приблизиться к сопоставлению строкового шаблона из X с любой заглавной буквой в алфавите, от А доЯ, с учетом основного шаблона. Я ищу либо пример кода (на Java), либо просто общую идею алгоритма.

Например, мне дан «основной шаблон» для ‘T’ из:

 X  X  X  X  X  X  X  X  X  X
        X  X            
        X  X            
        X  X            
        X  X            
        X  X            
        X  X            
        X  X            
        X  X            
        X  X            
        X  X            
  

… и все следующие шаблоны должны быть определены как T на основе основного шаблона.

 X  X  X  X  X  X  X  X  X
     X  X  X         
        X            
        X            
        X            
        X            
        X            
        X            
        X            
        X            
        X            
  

или

 X  X  X  X  X  X  X  X  X
     X  X            
     X  X            
     X  X            
     X  X            
     X  X            
     X  X            
     X  X            
     X  X            
     X  X            
     X  X            
  

или

 X  X  X  X  X  X  X  X  X
X  X  X  X  X  X  X  X  X
            X  X         
            X  X         
            X  X         
            X  X         
            X  X         
            X  X         
            X  X         
            X  X         
            X  X         
            X  X         
  

Алгоритм должен быть достаточно общим, чтобы работать со всеми буквами; T — это просто пример.

Комментарии:

1. Это очень сложная проблема, и она никоим образом не специфична для Java. Вероятно, вам нужно ознакомиться с оптическим распознаванием символов .

2. Ничего общего с OCR. OCR — это синтаксический анализ символов из изображения. Это уже символы (которые образуют символы). Мне нужно, чтобы окончательный алгоритм был на Java, поскольку это моя среда разработки

3. Это все еще OCR. Вы выполняете распознавание / классификацию шаблонов на основе растрового изображения. Это растровое изображение не является фотографией или отсканированным изображением, но принципы идентичны.

4. Напротив, это именно OCR. В более общем плане OCR — это извлечение текстовых данных из любого (традиционно двумерного) сигнала. То, что вы описываете (файлы, состоящие из графического расположения символов), весьма похоже на двоичное «изображение».

5. Хорошо, я пойду по пути распознавания этих символов.

Ответ №1:

Посмотрите на http://jocr.sourceforge.net /, который является бесплатной библиотекой распознавания текста. Это библиотека C, поэтому использовать ее напрямую, вероятно, не вариант для вас. Если ничего другого нет, вы можете хотя бы покопаться в источнике.

Вы также можете захотеть получить пик в http://userscripts.org/scripts/review/38736 , который представляет собой чистую реализацию JavaScript алгоритма распознавания на основе нейронной сети.

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