OCR сканирование писем.Не удалось загрузить учебные письма - PullRequest
0 голосов
/ 27 сентября 2011

Использование фреймворка javaocr из sourceforge. Попытка отсканировать буквы с изображения и научить систему распознавать их.

Получение этого исключения при загрузке трейнера:

java.io.IOException: Expected to decode 26 characters but actually decoded 33 characters in training: /Developer/MAckan/bin/LETTERS/trainLetters.PNG
    at net.sourceforge.javaocr.ocrPlugins.mseOCR.TrainingImageLoader.load(TrainingImageLoader.java:111)

Мой код такой:

loader.load(this,ClassLoader.getSystemResource("LETTERS/trainLetters.PNG").getPath(), new CharacterRange('A', 'Z'), images);

Другой вопрос, как заставить его тренировать скандинавские буквы. Если я введу диапазон A-Ö, он ожидает 150 символов.

Затем, когда я сканирую, я пытаюсь отсканировать строку на изображении в то время:

scanner.addTrainingImages(images);

        final CharacterRange[] cr = new CharacterRange[1];
        cr[0] = new CharacterRange('A', 'Z');

        // get the first line of letters
        final int x1 = 0;
        final int y1 = 130;
        final int x2 = 640;
        final int y2 = 170;


        for (int i = 0; i < 15; i++) {
        final String text = scanner.scan(boardImage, x1, y1 + (i * 40), x2,
                    y2 + (i * 40), cr);
            System.out.println("scanned " + text);
        }

И я действительно получаю вывод, но не ожидаемый вывод ... Кто-нибудь имеет опыт работы со структурой javaocr?

Обновление: Решил вопрос обучения. На тренировочном образе отсутствовала пара символов, а скандинавский не поддерживается (?). По-прежнему получаю странный вывод.

Update2: Решил всю проблему с написанием собственного сравнения вместо этого. Я сделал некоторые манипуляции с изображениями (уменьшенные цвета и прозрачность) и сравнил пиксель за пикселем и возвратил различие против изображений alafabet. Самый низкий diff "выигрывает". Работает для этого конкретного случая, но я все еще заинтересован в запуске OCR.

Спасибо.

* * Тысяча двадцать-один / А * * тысяча двадцать две

Ответы [ 2 ]

0 голосов
/ 30 сентября 2011

Решил всю проблему, написав вместо этого собственное сравнение.Я сделал некоторые манипуляции с изображениями (уменьшенные цвета и прозрачность) и сравнил пиксель за пикселем и возвратил различие против изображений alafabet.Самый низкий diff "выигрывает".Работает для этого конкретного случая, но я все еще заинтересован в запуске OCR.

Спасибо всем за помощь.

/ A

0 голосов
/ 28 сентября 2011

Ну, вам не понравится мой ответ, но вот он: Javaocr довольно дурацкий и очень плохо документирован.Я попробовал часть кода из демонстрационной версии src, но в других файлах PNG, отличных от поставляемых, и он на самом деле не распознает все это.

Вот библиотека, которая на самом деле работала: http://asprise.com/product/ocr/download.php?lang=java.Это не бесплатно, однако, если вы посмотрите на цены лицензий, то ДЕЙСТВИТЕЛЬНО не бесплатно, но все готово.

Вариант 2 - опробовать новый онлайн-сервис Google ocr: http://googlesystem.blogspot.com/2009/09/google-docs-ocr.html. IЯ не пробовал сам, но вы должны получить как минимум лучшую поддержку, чем с Java ocr ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...