暂时用Python保存文件?

时间:2017-06-23 08:55:39

标签: python opencv python-imaging-library ocr temp

我想将我使用PIL制作的处理过的实时图像暂时保存到PNG,以便将其传递给Tesseract。

正如您可能已经注意到的那样,这将是一个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()

1 个答案:

答案 0 :(得分: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()访问图像的二进制文件。