0

Postman を使用して base64 イメージを Apache Web サーバーの PHP ファイルに送信しています。画像は常に正常に送信されます。PHP スクリプトは、Python スクリプトを実行して画像からテキストを抽出し (Pytesseract/Tesseract-OCR を使用)、出力を PHP に送り返します。(それが重要な場合は、Windows 10を使用してください)

最初の 2 つの print ステートメントは常に Postman に返されますが、3 番目と 4 番目の print ステートメントは返されません。pytesseract 行がコメントアウトされている場合にのみ、最後の print ステートメントが返されます。

Python スクリプトを単独で実行すると、すべての print ステートメントが正常に返されます。

パイソン (test.py)

from PIL import Image 
import pytesseract
import sys

print "Print 1"
print "Print 2"

filename = "test.jpg"
#filename = sys.argv[1]
text = pytesseract.image_to_string(Image.open("Images/"+filename))
print text

#Final print statement appears on POSTMAN only if the tesseract code does not run

a = "Print"
b = 1+2
print a, b

PHP (connection.php)

<?php
 header('Content-type : bitmap; charset=utf-8');

 if(isset($_POST["encoded_string"])){
  $encoded_string = $_POST["encoded_string"];
  $device_name = $_POST["device_name"];

  /*$image_name = $device_name.'.jpg';*/
  $image_name = "test.jpg";
  $decoded_string = base64_decode($encoded_string);

  $path = 'images/'.$image_name;
  $file = fopen($path, 'wb');
  $is_written = fwrite($file, $decoded_string);
  fclose($file);

  $extracted = shell_exec("python test.py $image_name");
  echo $extracted;

 }

 else {
   echo "Failed :(";
 }

?>

問題はpythonスクリプトを実行できると思いますが、pythonスクリプトはPHPで実行されたときにtesseractを実行できません。

4

1 に答える 1