2017-07-19 135 views
0

我在使用Tesseract-OCR和Pytesseract Python包裝器時遇到問題。 我想這個問題可能來自Tesseract本身,而不是來自包裝。 於是,我就在的Tesseract CMD:在Windows上嘗試Tesseract CMD

C:\Users\Thomas\Desktop>tesseract.exe 'blabla.jpg' 'out.txt' 

它返回以下行:

Tesseract Open Source OCR Engine v3.05.01 with Leptonica 
Error in fopenReadStream: file not found 
Error in findFileFormat: image file not found 
Error during processing. 

我已經做了以下安裝的Tesseract:

而且通過我在哪裏運行我的Python代碼的方式,問題:

from PIL import Image 
import pytesseract 
text = pytesseract.image_to_string(Image.open('blabla.jpg') 
print(text) 

是:

Traceback (most recent call last): 

    File "<ipython-input-1-01e77f902509>", line 1, in <module> 
runfile('D:/anaconda/projects/OCR/ocr.py', wdir='D:/anaconda/projects/OCR') 

    File "D:\anaconda\lib\site-packages\spyder\utils\site\sitecustomize.py", line 880, in runfile 
execfile(filename, namespace) 

    File "D:\anaconda\lib\site-packages\spyder\utils\site\sitecustomize.py", line 102, in execfile 
exec(compile(f.read(), filename, 'exec'), namespace) 

    File "D:/anaconda/projects/OCR/ocr.py", line 48, in <module> 
text = pytesseract.image_to_string(a) 

    File "D:\anaconda\lib\site-packages\pytesseract\pytesseract.py", line 122, in image_to_string 
config=config) 

    File "D:\anaconda\lib\site-packages\pytesseract\pytesseract.py", line 46, in run_tesseract 
proc = subprocess.Popen(command, stderr=subprocess.PIPE) 

    File "D:\anaconda\lib\subprocess.py", line 707, in __init__ 
restore_signals, start_new_session) 

    File "D:\anaconda\lib\subprocess.py", line 990, in _execute_child 
startupinfo) 

PermissionError: [WinError 5] Access refused 

運行代碼以管理員身份不解決問題

非常感謝您的幫助!

+0

請閱讀[「我應該怎麼做當有人回答我的問題?」](http://stackoverflow.com/help/someone-answers)。 – thewaywewere

回答

0

首先,驗證tesseract作品或不從Windows command prompt,使用" "代替' '如果圖像和/或輸出文件名由space。否則,不需要引用符號。

C:\Users\Thomas\Desktop>tesseract.exe blabla.jpg out.txt 

其次,使用完整的文件路徑來指定圖像文件。比如,

pytesseract.pytesseract.tesseract_cmd = 'C:/path/to/tesseract.exe' 
text = pytesseract.image_to_string(Image.open('D:/path/to/blabla.jpg')) 

注意,正斜槓/用於特定的任何文件路徑,而不是反斜槓\,或者你使用雙反斜線\\,例如'D:\\path\\to\\blabla.jpg'

希望得到這個幫助。

+0

感謝您的回覆! 它解決了我的第一個問題。但是,即使使用完整的圖像路徑,我的python代碼仍然不起作用。我仍然得到「訪問被拒絕」 –

+0

你會嘗試添加'pytesseract.pytesseract.tesseract_cmd ='到特定的'tesseract.exe'文件路徑嗎?檢查示例命令的更新答案。 – thewaywewere