簡體   English   中英

在PIL中打開圖像文件時出錯

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM