2011-01-18 20 views
3

私はTesseractを使用して多数のイメージファイルをテキストに変換しようとしています。TesseractとPHP ocr

私はドキュメントを見てきましたが、それがPHPにどのように関係しているのか、私のPHPスクリプトがtesseract ocrとどのように作用するかはわかりません。私はphp exec()が方法かもしれないことを示唆する他の質問を見てきました。

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

私はtesseractをダウンロードしてインストールしました。 xamppの最新バージョンがインストールされたウィンドウ7を使用しています。 私は初心者から中級までのPHPの知識を持っています。 私には何の知識がありませんか?

更新私は今それが

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

でPowerShellとCMDでの作業持っていますが、私はこのような幹部を通してそれを実行しようとすると:

<?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 

答えて

7

あなたはCLI interface(MS-DOSプロンプト)ミリ秒の窓からそれを実行するために、つまり、それはPHPずに作業を取得しようとする必要があります。その後、入力したものをPHPランタイムのCLIに入れ、CLIやその他のIPC mechanismsで実行し、最終的にはPHP変数でパラメータ化します。例えば

、CLIには、システムのIP設定を取得するために

ipconfig /all 

を入力することになる場合には、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インタフェースを使用)。

あなたが(それはプログラムの実行中にユーザーが入力を求められた場合だとして)、あなたはhttp://ch2.php.net/manual/en/function.exec.php

良いから機能のproc_*()ファミリを使用する必要があります以上の出力を制御、または入力が必要な場合運!

+0

よろしくお願いいたします。私は成功せずにms dosのプロンプトでコマンドを実行しようとしました。しかし、今私はexecがどのように動作するかを見ています – andrew

+0

私はtesseract filename.pngファイル名を試してみて、 '出力ファイルを作成できませんでした。テキストを返すだけの出力ファイルを作成したいとは思っていません。私が必要とするのは、シェルでtesseractを使用する方法を示す良いチュートリアルです。私はms - dosでわずかな量しかやっていないので、どうやってそれに接近するのか非常に不確かです。 – andrew

+0

私はあなたを助けてうれしいですが、残念ながら私はtesseractに関する経験は全くありません。とにかくそれはもうプログラミング/ PHPの問題ではない、それは単に手元にあるプログラムを使用することです。 – Flavius

関連する問題