Question

Je cherche à convertir un grand nombre de fichiers d'images en texte en utilisant Tesseract.

J'ai regardé leurs documents, mais pas idée comment cela se rapporte à PHP et comment mon script php interagira avec Tesseract ocr. Je l'ai vu sur d'autres questions qui suggèrent que php exec () pourrait être la voie.

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

J'ai téléchargé et installé Tesseract. En utilisant Windows 7 avec une version récente de xampp installé. J'ai un débutant à la connaissance intermédiaire de php. Quelles sont les connaissances que je manque?

Mise à jour J'ai maintenant travailler avec vous dans Powershell et cmd avec

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

Mais quand je tente de l'exécuter par exec comme ceci:

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

Je reçois des fenêtres pop-up qui dit que le tesseract.exe a cessé de fonctionner. voici les détails d'erreur s'ils veulent dire quoi que ce soit à qui que ce soit.

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
Était-ce utile?

La solution

Vous devriez essayer de le faire fonctionner sans PHP, qui est, pour l'exécuter à partir des fenêtres ms CLI Interface (MS-DOS). Après cela, vous mettez simplement tout ce que vous avez tapé dans le CLI dans le temps d'exécution PHP, il en cours d'exécution via CLI ou d'un autre mécanismes IPC , éventuellement avec des variables de paramétrage PHP.

Par exemple, si la CLI vous taperez

ipconfig /all

pour obtenir la configuration IP du système, puis en PHP vous souhaitez simplement utiliser:

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

Retour à votre problème, si la CLI vous auriez émission:

tesseract document.tif result

Alors en PHP que vous feriez

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

C'est à ce sujet. Ce n'est pas spécifique à Tesseract, il fonctionne avec un programme (avec une interface CLI).

Si vous avez besoin d'un plus grand contrôle sur la sortie ou l'entrée (comme il est le cas lorsque l'utilisateur est invité pour l'entrée alors que le programme est en cours d'exécution), vous devez utiliser la famille proc_*() des fonctions http://ch2.php.net/manual/en/function.exec.php

Bonne chance!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top