我想将我使用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()
答案 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()
访问图像的二进制文件。