我面临一个令人困惑的问题,试图下载图像并使用BytesIO打开它,以便使用PIL和pytesseract从中提取文本。
>>> response = requests.get('http://abc/images/im.jpg')
>>> img = Image.open(BytesIO(response.content))
>>> img
<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=217x16 at 0x7FDAD185CB38>
>>> text = pytesseract.image_to_string(img)
>>> text
''
这里会返回一个空字符串。
但是如果我保存图像,然后再使用pytesseract打开,它就会给出正确的结果。
>>> img.save('im1.jpg')
>>> im = Image.open('im1.jpg')
>>> pytesseract.image_to_string(im)
'The right text'
确认一下,两个给出的大小是相同的。
>>> im.size
(217, 16)
>>> img.size
(217, 16)
什么可能是问题?是需要保存图片还是我做错了什么?