Python &引用;不支持的图像对象“;,使用Tesseract

Python &引用;不支持的图像对象“;,使用Tesseract,python,python-3.x,python-imaging-library,python-tesseract,Python,Python 3.x,Python Imaging Library,Python Tesseract,我正在使用Tesseract和Python从图像构建字符标识符 这是我的代码: 从PIL导入图像 将PyteSeract作为pyt导入   图像文件='位置' im=Image.open(图像文件) text=pyt.image\u到字符串(image\u文件) 打印(文本) 执行此程序时,我遇到以下错误: TypeError:不支持的图像对象 有人能解决这个问题吗?首先,记住添加行 pytesseract.pytesseract.tesseract_cmd = 'C:/Program Fi

我正在使用Tesseract和Python从图像构建字符标识符

这是我的代码:

从PIL导入图像
将PyteSeract作为pyt导入
 
图像文件='位置'
im=Image.open(图像文件)
text=pyt.image\u到字符串(image\u文件)
打印(文本)
执行此程序时,我遇到以下错误:

TypeError:不支持的图像对象


有人能解决这个问题吗?

首先,记住添加行

 pytesseract.pytesseract.tesseract_cmd = 'C:/Program Files/Tesseract-OCR/tesseract.exe'
在哪里
C:/Program Files/Tesseract OCR/Tesseract.exe
是安装Tesseract的位置。 您已经指出图像文件是一个字符串,这是可以的,但是您没有添加图像的扩展名! 例如 你会写信的
image\u文件='location.png'
。扩展名jpeg,或图像所持的任何其他格式。 然后,不是写,
text=pyt.image\u到字符串(image\u文件)
,写入
text=pyt.image\u to\u string(img)
,因为您正在解析的是图像,而不是字符串。 代码的其余部分还可以

注意:您可能需要指定图像的确切位置;例如“C:/Users/Dismas/Desktop/opencv python/image\u text.png”

但是如果你仍然遇到同样的问题,你可以使用链接。我按原样走了其中的步骤。 我也有过和你一样的问题,但现在我已经解决了。 下面的图像可能是更好理解的一个好来源


您传递的是字符串,而不是图像本身。要修复它,只需将行
text=pyt.image\u更改为字符串(image\u文件)
更改为
text=pyt.image\u更改为字符串(im)
。它应该可以正常工作。

image\u文件是一个字符串。改为通过
im
。谢谢。成功了。Tesseract的精确度非常低。在python中,还有其他方法可以识别图像中的字符吗?@SriJack您尝试过对图像进行二值化吗?
from PIL import Image
import pytesseract as pyt
     
image_file = 'location'
im = Image.open(image_file)
text = pyt.image_to_string(image_file)
print (text)