Pregunta

Busco para convertir un gran número de archivos de imagen en texto usando Tesseract.

He mirado en su documentación, sino que tenga no idea de cómo se relaciona con PHP y cómo mi script php interactuará con Tesseract OCR. Yo he visto en otras preguntas que sugieren que php exec () podría ser el camino.

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

He descargado e instalado Tesseract. El uso de Windows 7 con una versión reciente de XAMPP instalado. Tengo un principiante a nivel intermedio de conocimiento de php. ¿Qué conocimientos me estoy perdiendo?

Actualizar Ahora tengo que trabajar con PowerShell y en cmd con

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

Pero cuando trato de ejecutar a través de ejecutivo como esto:

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

me sale una ventana emergente de las ventanas que dice que el tesseract.exe ha dejado de funcionar. aquí están los detalles de error si quieren decir nada a nadie.

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
¿Fue útil?

Solución

Usted debe tratar de conseguir que funcione sin PHP, que es, a ejecutarlo desde las ventanas ms CLI interfaz (los de MS-DOS). Después de eso, sólo tiene que poner lo que ha escrito en el CLI en el tiempo de ejecución de PHP, ejecutarlo a través de CLI o algún otro mecanismos IPC , finalmente parametrización con las variables de PHP.

Por ejemplo, si en la CLI que estaría escribiendo

ipconfig /all

para obtener la configuración IP del sistema, a continuación, en PHP que le basta con utilizar:

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

Volver a su problema, si en la CLI que estaría de emisión:

tesseract document.tif result

A continuación, en PHP que harías

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

Eso es todo. No es específico para Tesseract, funciona con cualquier programa (con una interfaz CLI).

Si necesita más control sobre la salida o la entrada (como es el caso cuando se le pide al usuario para la entrada, mientras que el programa se está ejecutando), se debe utilizar la familia proc_*() de las funciones de http://ch2.php.net/manual/en/function.exec.php

Buena suerte!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top