Ошибка при открытии файла изображения в PIL - PullRequest
6 голосов
/ 06 марта 2012

Я пытаюсь выполнить следующий код

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

Ответы [ 6 ]

4 голосов
/ 25 сентября 2015

Сначала вам нужно установить Tesseract. Просто установки pytesseract недостаточно. Затем отредактируйте переменную tesseract_cmd в pytesseract.py, чтобы указать двоичный файл tessseract. Например, в моей установке я установил его на

tesseract_cmd = 'C:\\Program Files (x86)\\Tesseract-OCR\\tesseract.exe'
3 голосов
/ 06 марта 2012

Исключение довольно очевидно: файл либо не существует, либо у вас недостаточно прав для доступа к нему. Если это не так, предоставьте доказательства (например, соответствующие dir команды с выводом, запускаемые от имени того же пользователя).

0 голосов
/ 09 января 2018

Если вы используете pytesseract, вы должны убедиться, что вы установили Tesseract-OCR в вашей системе.После этого вам нужно вставить путь к тессеракту в вашем коде, как показано ниже

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

0 голосов
/ 06 мая 2014

Просто добавьте эти две строки в ваш код

import OS

os.chdir('C:\Python27\Lib\site-packages\pytesser')  

перед

from pytesser import *
0 голосов
/ 06 марта 2012

Попробуйте сначала:

os.path.expanduser('~/Desktop/attachments/R1PNDTCB.jpg')

Возможно, проблема связана с пробелом в «Документах и ​​настройках».

РЕДАКТИРОВАТЬ:

Используйте os.path.join, чтобы он использовал правильный разделитель каталогов.

0 голосов
/ 06 марта 2012

Ваш путь к изображению может быть?

i="C:\\Documents and Settings\\Administrator\\Desktop\\attachments\\R1PNDTCB.jpg"

попробуйте это:

import os
os.path.join("C:\\", "Documents and Settings", "Administrator")

вы должны получить строку, похожую на строку в предыдущей строке

...