Pytesseract Image_to_string returns Windows Error: Access denied error in Python

Pytesseract Image_to_string returns Windows Error: Access denied error in Python

我尝试使用 Pytesseract.I 从图像中读取文本,当我 运行 以下脚本时收到访问被拒绝消息。

     from PIL import Image
     import pytesseract
     import cv2
     import os

     filename=r'C:\Users\ychandra\Documents\teaching-text-structure-3-728.jpg'
     pytesseract.pytesseract.tesseract_cmd = r'C:\Python27\Lib\site-packages\pytesseract'
     image=cv2.imread(filename)
     gray=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)

     gray=cv2.threshold(gray,0,255,cv2.THRESH_BINARY|cv2.THRESH_OTSU)[1]
     gray=cv2.medianBlur(gray,3)

     filename='{}.png'.format(os.getpid())
     cv2.imwrite(filename,gray)

     text=pytesseract.image_to_string(Image.open(filename))
     print text

     cv2.imshow("image",image)
     cv2.imshow("res",gray)
     cv2.waitKey(0)

当我 运行 脚本时出现以下错误

    Traceback (most recent call last):
    File "F:\opencv\New_folder_3\text_from_image.py", line 17, in <module>
text=pytesseract.image_to_string(Image.open(filename))
    File "C:\Python27\lib\site-packages\pytesseract\pytesseract.py", line 122, in image_to_string
config=config)
    File "C:\Python27\lib\site-packages\pytesseract\pytesseract.py", line 46, in run_tesseract
    proc = subprocess.Popen(command, stderr=subprocess.PIPE)
    File "C:\Python27\lib\subprocess.py", line 390, in __init__
errread, errwrite)
    File "C:\Python27\lib\subprocess.py", line 640, in _execute_child
startupinfo)
    WindowsError: [Error 5] Access is denied 

除了 pytesseract.pytesseract.tesseract_cmd 的设置外,您的代码有效。 tesseract_cmd 应设置为您机器中安装的 tesseract executable file

这是它的用法示例。

pytesseract.pytesseract.tesseract_cmd = "C:/Program Files/Tesseract 4.0.0/tesseract.exe"

如果您的 Windows PC 中没有正确搜索 PATH 设置,则需要 tesseract_cmd

希望对您有所帮助。


更新:

在使用 pytesseract 之前,您需要将 tesseract 二进制文件安装到您的 PC 中,它使用 subprocess 模块到 Windows [=62] 中的 运行 tesseract =] 来自 Python.

单击此 Tesseract 4.00 alpha 下载 64 位 Windows 版本并安装。然后设置 PATHTESSDATA_PREFIX 分别指向您的 tesseract.exe~\tessdata 目录。

如果您需要任何其他语言 trained data file,您可以获取 [here]

万一 ~\tessdata 目录在你的 Windows 中找不到,你可以手动创建它并复制至少一个 traineddata 文件到那里,例如 eng.traineddata 英语。

如果tesseract 正常工作,当您在命令提示符中键入tesseract -v 时,它将return 版本信息,如下所示。