2017-06-23 8 views
1

PILで作成した処理済のリアルタイムイメージを一時的にPNGに保存してTesseractに渡したいと思っています。Pythonでファイルを一時的に保存していますか?

あなたが気づいたように、これはOCRプロジェクトになります。 私はStringIOとBytesIOを使用しようとしましたが、私が見つけた情報はあまり具体的ではなく、私の小さなプログラムでそれをどう実装するのかまだ分かりません。

私はPythonとプログラミング全般に新しくなっていますので、あなたの説明を非常に詳細に記述してください。 これを行うにはより良い方法がある場合は、私に教えてください!

ありがとうございます!

import numpy as np 
from PIL import ImageGrab 
import cv2 

def processed_img(image): 
    proc_img = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) 
    proc_img = cv2.adaptiveThreshold(proc_img,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,\ 
            cv2.THRESH_BINARY,11,2) 
    return proc_img 

def main(): 
    while(True): 
     screen = np.array(ImageGrab.grab([2165, 450, 3020, 740])) 
     new_screen = processed_img(screen) 
     cv2.imshow('window',new_screen) 
     if cv2.waitKey(25) & 0xFF == ord('q'): 
      cv2.destroyAllWindows() 
      break 

main() 
+2

tempfileをご覧ください。https://docs.python.org/2/library/tempfile.html – Duikboot

答えて

0

io.BytesIO()を使用できます。

自分で実装する方法を理解することができます。ここにサンプルコード

from PIL import Image 
from io import BytesIO 

img = Image.open(somePath) 
... # do other stuff 
temp = BytesIO() 
img.save(temp) 

次に、temp.getvalue()を使用して画像のバイナリにアクセスできます。

関連する問題