我尝试使用Pytesseract从图像中读取文本。当我运行以下脚本时,我收到了拒绝访问的消息。
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
答案 0 :(得分:4)
除pytesseract.pytesseract.tesseract_cmd
的设置外,您的代码无效。 tesseract_cmd
应设置为您计算机中安装的tesseract executable file
。
以下是它的示例用法。
pytesseract.pytesseract.tesseract_cmd = "C:/Program Files/Tesseract 4.0.0/tesseract.exe"
如果在Windows PC中没有正确搜索tesseract_cmd
设置,则需要PATH
。
希望得到这个帮助。
的更新:强>
在使用tesseract
使用pytesseract
模块从Python运行Windows shell中的tesseract之前,您需要在PC中安装subprocess
二进制文件。
单击此Tesseract 4.00 alpha下载64位Windows版本并进行安装。然后分别设置指向PATH
和TESSDATA_PREFIX
目录的tesseract.exe
和~\tessdata
。
如果您需要任何其他语言trained data file
,则可以获得[here]。
如果在Windows中找不到~\tessdata
目录,您可以手动创建它并将至少一个traineddata
文件复制到那里,例如eng.traineddata
为英文。