Чтобы увидеть, что происходит с вашим кодом, я использовал простую реализацию отладки ниже и попробовал ее. Затем я узнал, что это не путь к файлу * .png. Затем я увидел имена временных файлов, определенные в pytesseract.py. Этот pytesseract
преобразовывает и сохраняет новый файл temp-png, создает новый временный файл bmp (измененная цветовая схема), и когда это делается, он передает это как команду Tesseract
...
... и поскольку Tesserac
t не установлен на моей машине, я получаю сообщение об ошибке, похожее на ваше:
Traceback (последний последний вызов):
Файл "D:......\Image text convert.py", строка 55, в тексте = pytesseract.image_to_string(Image.open(имя файла))
Файл "c:......\lib\site-packages\pytesseract\pytesseract.py", строка 132, в image_to_string config=config)
Файл "c:......\lib\site-packages\pytesseract\pytesseract.py", строка 50, в run_tesseract proc = subprocess.Popen(command, stderr=subprocess.PIPE)
Файл "c:......\lib\subprocess.py", строка 390, в init errread, errwrite)
Файл "c:......\lib\subprocess.py", строка 640, в _execute_child startupinfo) Ошибка Windows: [Ошибка 2] Система не может найти указанный файл
So...
Мой вывод:
WindowsError: [Error 2] The system cannot find the file specified
— это системный способ косвенно сообщить вам, что Tesseract не установлен/не скомпилирован... и т.д. И не имеет ничего общего с вашим входным *.png filpath.
Предложение:
Установите Tesseract из здесь и посмотрите, возникает ли ошибка сопротивляться. Если решено, сообщите об этом здесь как об ответе и «принятии ответа», что даст нам обоим представителям.
Код для отладки:
Реализуйте после «im» в своем коде:
im = raw_input("Enter Image: ") # just to shows what "im" was.
print im # debuggin: show filepath to use.
if not os.path.exists(im): # checks if filepath is true.
print 'filepath "%s" is incorrect, exit..' % im
exit()
else:
print "filepath correct, continue.."
... и, наконец, бонус, чтобы самому стать экспертом по отладке...
Взлом pytesseract.py
Когда вы добавляете:
time.sleep(10) в:
import time # needs to be imported too...
def image_to_string(image, lang=None, boxes=False, config=None):
...snippet...
try:
image.save(input_file_name)
time.sleep(10)
status, error_string = run_tesseract(input_file_name,
output_file_name_base,
lang=lang,
boxes=boxes,
config=config)
замените: filename = "{}.png".format(os.getpid())
на filename = "Test_{}.png".format(os.getpid())
в вашем коде....
... Затем вы будете вознаграждены и увидите создание временного файла по адресу: C:\Users\...\AppData\Local\Temp
Наслаждайтесь... и дайте нам знать, если это исправлено путем установки библиотеки Tesseract.
person
ZF007
schedule
14.01.2018