我可以让 pytesseract 命令在抛出错误的 pycharm 中正常工作吗

我正在定义一个功能,它将图像转换为灰度(位黑白色),然后将其传递给:


text = pytesseract.image_to_string(Image.open(gray_scale_image))

然后我打印我收到的文本,但它抛出错误:


Traceback (most recent call last):

  File "C:\Users\HP\PycharmProjects\nayaproject\venv\lib\site-packages\PIL\Image.py", line 2613, in open

fp.seek(0)

AttributeError: 'numpy.ndarray' object has no attribute 'seek'


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "C:/Users/HP/PycharmProjects/nayaproject/new.py", line 17, in <module>

text = pytesseract.image_to_string(Image.open(g))

  File "C:\Users\HP\PycharmProjects\nayaproject\venv\lib\site-packages\PIL\Image.py", line 2615, in open

fp = io.BytesIO(fp.read())

AttributeError: 'numpy.ndarray' object has no attribute 'read'

而不是 Image.open(grayscale),当我使用 Image.fromarray(grayscale) 我得到这些错误:


Traceback (most recent call last):

  File "C:\Users\HP\PycharmProjects\nayaproject\venv\lib\site-packages\pytesseract\pytesseract.py", line 170, in run_tesseract

proc = subprocess.Popen(cmd_args, **subprocess_args())

  File "C:\Users\HP\AppData\Local\Programs\Python\Python36\lib\subprocess.py", line 709, in __init__

restore_signals, start_new_session)

  File "C:\Users\HP\AppData\Local\Programs\Python\Python36\lib\subprocess.py", line 997, in _execute_child

startupinfo)


FileNotFoundError: [WinError 2] The system cannot find the file specified


During handling of the above exception, another exception occurred:


我正在研究 PyCharm,并且我已经为这个项目安装了 Pillow、numpy、opencv-python、pip 和 pytesseract。


暮色呼如
浏览 294回答 1
1回答

慕侠2389804

因为我猜gray_scale_image是从 OpenCV 输出的,因此是 numpy 数组,如错误所示AttributeError: 'numpy.ndarray' object has no attribute 'read'您需要将数组转换为 PIL 对象。根据我自己的经验,我建议您将 numpy 数组自动转换为 np.uint8,因为 PIL 使用 8 位,并且您通常不了解 OpenCV 算法的内容。text = pytesseract.image_to_string(Image.fromarray(gray_scale_image.astype(np.uint8)))如果上述方法不起作用,则您绝对不会传递任何形式的 Image 数组。尝试输入这些以找到争论的特征:print(type(gray_scale_image))print(gray_scale_image.shape)在这将解决您的第一个问题之后,将会出现您尚不知道的新问题。您需要将路径添加到您的 pytesseractpytesseract.pytesseract.TesseractNotFoundError: tesseract is not installed or it's not in your path解决方案是在开头添加您的路径pytesseract.pytesseract.tesseract_cmd = 'C:/Program Files (x86)/Tesseract-OCR/tesseract'TESSDATA_PREFIX = 'C:/Program Files (x86)/Tesseract-OCR'
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python