Как я могу использовать tesseract из командной строки для чтения внутри открытого окна? - PullRequest
1 голос
/ 03 февраля 2012

Я пытаюсь использовать tesseract из командной строки, чтобы запустить OCR для содержимого открытого окна. В частности, я хочу прочитать текст, набранный в текущем открытом окне Блокнота.

Я прочитал документацию и вики здесь: http://code.google.com/p/tesseract-ocr/w/list

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

Возможно ли это?

Я в основном программист PHP (программирую просто для удовольствия) и не имею опыта работы с языками, не относящимися к сети.

Заранее спасибо.

1 Ответ

2 голосов
/ 18 апреля 2012

Tesseract разработан, чтобы принимать изображение TIFF в качестве входных данных и ничего не знать о контекстах устройства Windows или экрана.Поэтому вам нужно будет добавить код, чтобы найти дескриптор окна для окна «Блокнот», выполнить снимок экрана и обрезать окно на основе текущего размера окна, сообщенного Windows, и сохранить полученное изображение в файл.Это изображение, скорее всего, будет черно-белым, что облегчит распознавание текста, так как я подозреваю, что Tesseract 2.0 работает только с черно-белыми изображениями.Следующая проблема будет заключаться в том, что Тессеракт дает плохие результаты из-за низкого DPI (разрешения) исходного изображения.

Чтобы оценить пригодность вашего подхода, я бы выполнил некоторые ручные тесты, открыв Блокнот, сделав скриншоты, открывснимки экрана в MSPaint, обрезка текста, который вы хотите использовать для распознавания текста, сохранение обрезанного изображения в формате TIFF или BMP и отправка этого файла в Tesseract.Это может сэкономить вам много времени и усилий, если результаты не так хороши, как вы ожидаете.

...