[英]Error in opening image file in PIL
我正在嘗試執行以下代碼
from pytesser import *
import Image
i="C:/Documents and Settings/Administrator/Desktop/attachments/R1PNDTCB.jpg"
print i
im = Image.open(i.strip())
text = image_to_string(im)
print text
我收到以下錯誤
C:/Documents and Settings/Administrator/Desktop/attachments/R1PNDTCB.jpg
Traceback (most recent call last):
File "C:\Python27\Lib\site-packages\Pythonwin\pywin\framework\scriptutils.py", line 322, in RunScript
debugger.run(codeObject, __main__.__dict__, start_stepping=0)
File "C:\Python27\Lib\site-packages\Pythonwin\pywin\debugger\__init__.py", line 60, in run
_GetCurrentDebugger().run(cmd, globals,locals, start_stepping)
File "C:\Python27\Lib\site-packages\Pythonwin\pywin\debugger\debugger.py", line 655, in run
exec cmd in globals, locals
File "C:\Documents and Settings\Administrator\Desktop\attachments\ocr.py", line 1, in <module>
from pytesser import *
File "C:\Python27\lib\site-packages\PIL\Image.py", line 1952, in open
fp = __builtin__.open(fp, "rb")
IOError: [Errno 2] No such file or directory: 'C:/Documents and Settings/Administrator/Desktop/attachments/R1PNDTCB.jpg'
有人可以解釋我在這里做錯了什么。
重命名圖像文件。將python文件和圖像移動到新文件夾。 將文件夾移至E盤現在代碼如下:
from pytesser import *
import Image
import os
i=os.path.join("E:\\","ocr","a.jpg")
print i
im = Image.open(i.strip())
text = image_to_string(im)
print text
現在錯誤如下:
E:\ocr\a.jpg
Traceback (most recent call last):
File "or.py", line 8, in <module>
text = image_to_string(im)
File "C:\Python27\lib\pytesser.py", line 31, in image_to_string
call_tesseract(scratch_image_name, scratch_text_name_root)
File "C:\Python27\lib\pytesser.py", line 21, in call_tesseract
proc = subprocess.Popen(args)
File "C:\Python27\lib\subprocess.py", line 679, in __init__
errread, errwrite)
File "C:\Python27\lib\subprocess.py", line 893, in _execute_child
startupinfo)
WindowsError: [Error 2] The system cannot find the file specified
您需要先安裝Tesseract。 只是安裝pytesseract是不夠的。 然后編輯pytesseract.py中的tesseract_cmd變量以指向tessseract二進制文件。 例如,在我的安裝中,我將其設置為
tesseract_cmd = 'C:\\Program Files (x86)\\Tesseract-OCR\\tesseract.exe'
異常非常明確:文件不存在,或者您沒有足夠的權限來訪問它。 如果不是這種情況,請提供證據(例如,帶輸出的相關dir
命令,以同一用戶身份運行)。
只需在代碼中添加這兩行即可
導入OS
os.chdir('C:\Python27\Lib\site-packages\pytesser')
之前
from pytesser import *
如果您使用的是pytesseract,則必須確保已在系統中安裝了Tesseract-OCR。 之后,您必須在代碼中插入tesseract的路徑,如下所示
from PIL import Image
import pytesseract
pytesseract.pytesseract.tesseract_cmd = 'C:/Program Files (x86)/Tesseract
OCR/tesseract'
您可以下載Tesseract-OCR表格https://github.com/UB-Mannheim/tesseract/wiki
您的圖像路徑可能嗎?
i="C:\\Documents and Settings\\Administrator\\Desktop\\attachments\\R1PNDTCB.jpg"
試試這個:
import os
os.path.join("C:\\", "Documents and Settings", "Administrator")
你應該得到一個類似於上一行的字符串
先試試這個:
os.path.expanduser('~/Desktop/attachments/R1PNDTCB.jpg')
可能是“文檔和設置”中的空間導致了這個問題。
編輯:
使用os.path.join
因此它使用正確的目錄分隔符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.