Вопрос

Я хочу преобразовать большое количество файлов изображений в текст с помощью 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');
?>

Я получаю всплывающее окно от Windows, в котором говорится, что 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
Это было полезно?

Решение

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

Например, если в CLI вы бы печали

ipconfig /all

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

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

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

tesseract document.tif result

Тогда в PHP вы бы сделали

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

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

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

Удачи!

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