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 版本并安装。然后设置 PATH
和 TESSDATA_PREFIX
分别指向您的 tesseract.exe
和 ~\tessdata
目录。
如果您需要任何其他语言 trained data file
,您可以获取 [here]。
万一 ~\tessdata
目录在你的 Windows 中找不到,你可以手动创建它并复制至少一个 traineddata
文件到那里,例如 eng.traineddata
英语。
如果tesseract
正常工作,当您在命令提示符中键入tesseract -v
时,它将return 版本信息,如下所示。
我尝试使用 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 版本并安装。然后设置 PATH
和 TESSDATA_PREFIX
分别指向您的 tesseract.exe
和 ~\tessdata
目录。
如果您需要任何其他语言 trained data file
,您可以获取 [here]。
万一 ~\tessdata
目录在你的 Windows 中找不到,你可以手动创建它并复制至少一个 traineddata
文件到那里,例如 eng.traineddata
英语。
如果tesseract
正常工作,当您在命令提示符中键入tesseract -v
时,它将return 版本信息,如下所示。