Frage

Ich freue mich auf eine große Anzahl von Bilddateien in Text mit Tesseract zu konvertieren.

Ich habe in ihrer Dokumentation gesucht, aber haben nicht Ahnung, wie das bezieht sich auf PHP und wie mein PHP-Skript wird interact mit Tesseract OCR. Ich habe auf andere Fragen gesehen, dass PHP exec vorschlagen () könnte der Weg sein.

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

Ich habe heruntergeladen und installiert Tesserakts. Mit Windows 7 mit einer aktuellen Version von XAMPP installiert. Ich habe einen Anfänger bis sehr gute Kenntnisse von PHP. Welches Wissen bin ich dabei?

Update Ich habe jetzt arbeitet sie mit in Powershell und cmd mit

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

Aber wenn ich versuche es durch exec wie folgt ausgeführt werden:

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

ich ein Pop-up aus den Fenstern erhalten, sagt die tesseract.exe Arbeits gestoppt hat. hier sind die Fehlerdetails, wenn sie jemandem etwas bedeuten.

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
War es hilfreich?

Lösung

Sie sollten versuchen, es ohne PHP arbeiten zu lassen, das heißt, es von dem MS Windows zu laufen CLI-Schnittstelle (die MS-DOS-Eingabeaufforderung). Danach, einfach alles, was Sie setzen Sie in der CLI in der PHP-Laufzeit eingegeben haben, es über CLI oder einem anderen IPC-Mechanismen , schließlich es mit PHP-Variablen parametrieren.

Wenn zum Beispiel in der CLI würden Sie tippen

ipconfig /all

die IP-Konfiguration des Systems erhalten, dann in PHP würden Sie einfach verwenden:

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

Zurück zu Ihrem Problem, wenn in der CLI Sie die Ausgabe würde:

tesseract document.tif result

Dann in PHP würden Sie tun

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

Das ist es. Es ist nicht spezifisch für tesseract, es funktioniert mit jedem Programm (mit einer CLI-Schnittstelle).

Wenn Sie mehr Kontrolle über die Ausgabe benötigen, oder den Eingang (wie es der Fall ist, wenn der Benutzer zur Eingabe aufgefordert wird, während das Programm ausgeführt wird), sollten Sie die proc_*() Familie von Funktionen aus verwenden http://ch2.php.net/manual/en/function.exec.php

Viel Glück!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top