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 :(";
 }

?>
4

0 に答える 0