Как проверить, завершил ли Tesseract обработку файла? - PullRequest
0 голосов
/ 15 ноября 2018

Я просто программирую программное обеспечение на vb.net, где я пытаюсь распознать десятки * .jpg файлов.

Основная идея состоит в том, чтобы вручную выбрать папку, в которой у меня есть куча jpg-файлов, и вторую папку, в которой хранятся txt-файлы, которые выводит Tesseract.

Как вы знаете, Tesseract требуется несколько секунд (в моем случае немного больше, потому что мой компьютер не работает), чтобы обработать файл jpg и распознать его.

Проблема в том, что я хочу, чтобы OCR каждый JPG один за другим, поэтому мне нужно знать, когда Tesseract закончит обработку каждого файла. Когда я быстро выполнил команду CMD с аргументами, Tesseract создал пустой текстовый файл. Но я понятия не имею, как проверить, когда Tesseract завершил обработку файла, и программное обеспечение VB может запустить инструкции для обработки следующего файла jpg.

Я думал о проверке длины в байтах txt-файла, и если он не равен нулю, это означает, что файл был обработан Tesseract.

На данный момент у меня есть цикл Do ..., где я обрабатываю каждый из файлов jpg, и у меня есть вложенный цикл Do ..., который проверяет, равен ли размер файла txt> 0 байт. Если он не больше нуля байтов, он выполняет thread.sleep (5000).

Do Until myFileSize > 0
    Thread.Sleep(5000)
Loop

Попытка перезапустить код снова и снова, пока размер файла txt = 0 байт.

Это единственное решение, которое я знаю, но, похоже, оно не выполняет действия, которое я ищу.

Какую технику вы бы использовали для решения этого дела?

1 Ответ

0 голосов
/ 16 ноября 2018

Tesseract имеет пакетный режим, в котором вы можете предоставить список файлов, которые должны быть обработаны, и он будет обрабатывать каждый из них.Посмотрите здесь .

...