Тессеракт и Php ocr - PullRequest
       21

Тессеракт и Php ocr

3 голосов
/ 19 января 2011

Я хочу преобразовать большое количество графических файлов в текст, используя Tesseract.

Я посмотрел их документацию, но понятия не имею, как это относится к PHP и как мой php-скрипт будет взаимодействовать с tesseract ocr. Я видел на других вопросах, которые предполагают, что php exec () может быть способом.

$img = myimage.png;
$text = exec($img,'tesseract');

Я скачал и установил tesseract. Использование Windows 7 с последней установленной версией xampp. У меня есть новичок в промежуточных знаний php. Какие знания мне не хватает?

Обновление Теперь у меня это работает в powershell и cmd с

tesseract.exe D:\Documents\Web_Development\Sandbox\php\images\23.png D:\Documents\Web_Development\Sandbox\php\images\23

Но когда я пытаюсь запустить его через exec, вот так:

<?php 
exec('tesseract.exe D:\Documents\Web_Development\Sandbox\images\23.png D:\Documents\Web_Development\Sandbox\images\23');
?>

Я получаю всплывающее окно из окна, которое говорит, что tesseract.exe перестал работать. Вот подробности ошибки, если они что-то значат для кого-либо.

Problem signature:
  Problem Event Name:   BEX
  Application Name: tesseract.exe
  Application Version:  0.0.0.0
  Application Timestamp:    4ca507b3
  Fault Module Name:    MSVCR90.dll
  Fault Module Version: 9.0.30729.4926
  Fault Module Timestamp:   4a1743c1
  Exception Offset: 0002f93e
  Exception Code:   c0000417
  Exception Data:   00000000
  OS Version:   6.1.7600.2.0.0.768.3
  Locale ID:    1033
  Additional Information 1: e958
  Additional Information 2: e95831f9d00a16a326250da660e931c5
  Additional Information 3: 040a
  Additional Information 4: 040a259d27c5ccf749ee18722d5fbec0

1 Ответ

7 голосов
/ 19 января 2011

Вы должны попытаться заставить его работать без PHP, то есть запустить его из интерфейса MS Windows CLI (приглашение ms-dos).После этого вы просто помещаете все, что вы ввели в CLI, во время выполнения PHP, запускаете его через CLI или через другие механизмы IPC , в конечном итоге параметризуя его с помощью переменных PHP.если в CLI вы наберете

ipconfig /all

для получения IP-конфигурации системы, то в PHP вы просто используете:

<code><?php
echo '<pre>';
echo exec('ipconfig /all');
echo '
';

Вернемся к вашей проблеме, если в CLI вы будете выдавать:

tesseract document.tif result

Тогда в PHP вы выполните

<code><?php
echo '<pre>';
echo exec('tesseract document.tif result');
echo '
';

Вот и все.Это не специфично для tesseract, оно работает с любой программой (с интерфейсом CLI).

Если вам требуется больше контроля над выводом или вводом (как в случае, когда пользователь запрашивает ввод, пока пользовательпрограмма запущена), вы должны использовать семейство функций proc_*() из http://ch2.php.net/manual/en/function.exec.php

Удачи!

...