Как найти пустое поле на отсканированном изображении документа

StackOverflow https://stackoverflow.com/questions/548309

Вопрос

Я хочу, чтобы мое приложение заполнило одно поле в форме, которая существует как черно-белый файл изображения.Форма всегда начинается как одна и та же бумажная версия, но к тому времени, когда мое приложение получает его от моих пользователей, оно могло быть отсканировано или отправлено по факсу более одного раза.Из -за этого поле, которое мне нужно, не находится в одном и том же месте в каждом файле.

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

На исходной пустой форме есть текст, но, поскольку он мог быть отправлен по факсу, у меня есть только 200 dpi разрешения.Текст всегда достаточно большой для чтения человека, но я скептически относится к OCR.

У меня есть некоторый бюджет, поэтому мне не нужно бесплатное решение...Скажем так, 2000 долларов.

Тем не менее, я рассматриваю

  1. Получите решение OCR, чтобы найти текстовую метку в поле, в котором я нуждаюсь.Я не думаю, что у меня есть ресурсы или опыт, чтобы кататься на меня.Мне не нужно идеального признания, так как я уже знаю, что говорит текст.Но мне нужно знать X- и Y-координаты.Есть ли это программное обеспечение?Или программирование проще, чем я думаю?

  2. Создайте или купите программное обеспечение для распознавания краев формы.Оттуда я мог бы получить относительную позицию поля, которая мне нужно.Я думаю о пунктирной линии, которое мое программное обеспечение сканера ставит вокруг изображения небольшого документа.Это известный алгоритм или есть доступное решение?

  3. Какой -то другой способ распознать необходимую мне поле.Попытки Google Form Filling Software дают мне сотни совпадений для веб -форм, форм PDF и т. Д.Это не делает то, что мне нужно.

Я не требователен к языку.Мое приложение работает на Linux, но если лучшим решением будет Microsoft, я, вероятно, смогу заставить его работать.

Я был бы признателен за ваши мысли.

Это было полезно?

Решение

Если я правильно понимаю, форма всегда одна и та же, но может быть смещена, масштабирована или слегка повернута из-за фотокопирования/отправки по факсу.В этом случае ваша проблема является одной из регистрация изображения:найдите оптимальное жесткое преобразование, которое приведет форму пользователя в соответствие с вашей «модельной» формой, в которой вы знаете расположение интересующего поля.Зная преобразование, вы можете вычислить расположение поля в пользовательской форме.

Существует множество алгоритмов регистрации изображений, обычно разрабатываемых для таких приложений, как совмещение МР-изображений мозга.Они требуют больших вычислительных затрат и требуют статистических априорных данных.К счастью, ваш случай проще:все, что вам нужно сделать, это обвести прямоугольником содержимое пользовательской формы.Координатный спуск должен сработать.Вам понадобится некоторая терпимость к шуму (мусору вне формы).

Другие советы

Вот небольшой обзор некоторых доступных решений OCR (с открытым исходным кодом и нет): http://googlesystem.blogspot.com/2007/04/open-source-ocr-software-sponsored-by.html

Жесткой регистрации может быть недостаточно.Пользователи могут изменять макет и форматирование формы шаблона, например менять шрифты, изменять расположение флажка или поля ввода, разбивать абзац на разных позициях новой строки и т. д.С этими различиями сложнее справиться, чем с чистым сдвигом, вращением или преобразованием масштаба.Кроме того, если ваше изображение является двоичным (черно-белым), я не думаю, что эти алгоритмы регистрации медицинских изображений (работающие с изображениями в оттенках серого) сильно помогут.Ваша функция затрат и стратегии минимизации могут быть изменены соответствующим образом.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top