Я пытаюсь запустить базовый и очень простой код на Python.
from PIL import Image
import pytesseract
im = Image.open("sample1.jpg")
text = pytesseract.image_to_string(im, lang = 'eng')
print(text)
Вот как это выглядит, я фактически установил tesseract для Windows через установщик. Я новичок в Python и не уверен, что делать дальше?
Любое руководство здесь было бы очень полезно. Я попытался перезапустить свое приложение Spyder, но безуспешно.






Вам потребуется установить tesseract.
Ознакомьтесь с приведенной выше документацией по установке.
Привет, я уже пробовал это сделать, я установил с github с помощью установщика для Windows, но он все еще не работает. Не уверен, почему или что, я думаю, это имеет отношение к пути? Я снова проверю вики
От https://pypi.org/project/pytesseract/:
pytesseract.pytesseract.tesseract_cmd = '<full_path_to_your_tesseract_executable>'
# Include the above line, if you don't have tesseract executable in your PATH
# Example tesseract_cmd: 'C:\\Program Files (x86)\\Tesseract-OCR\\tesseract'
sudo apt-get update
sudo apt-get install libleptonica-dev
sudo apt-get install tesseract-ocr tesseract-ocr-dev
sudo apt-get install libtesseract-dev
brew install tesseract
скачать двоичный файл из https://github.com/UB-Mannheim/tesseract/wiki. затем добавьте pytesseract.pytesseract.tesseract_cmd = 'C:\Program Files (x86)\Tesseract-OCR\tesseract.exe' в свой сценарий.
pip install tesseract
pip install tesseract-ocr
Рекомендации: https://pypi.org/project/pytesseract/ (раздел УСТАНОВКА) и https://github.com/tesseract-ocr/tesseract/wiki#installation
Используйте следующую команду для установки tesseract
pip install tesseract
В окнах:
pip install tesseract
pip install tesseract-ocr
и проверьте файл, который хранится в вашем системном файле usr/appdata/local/programs/site-pakages/python/python36/lib/pytesseract/pytesseract.py
и скомпилируйте файл
Обратите внимание, что это не работает в Windows, где вам нужно установить двоичный файл (из github.com/tesseract-ocr/tesseract/wiki) и добавить строку pytesseract.pytesseract.tesseract_cmd = r"C:\Program Files (x86)\Tesseract-OCR\tesseract.exe" для работы tesseract.
вы можете установить этот пакет ... https://github.com/UB-Mannheim/tesseract/wiki после этого вы должны пойти по этому пути C: \ Program Files (x86) \ Tesseract-OCR \ tesseract.exe затем запустите файл tesseract. Думаю, это тебе поможет ...
Я вижу, что шаги разбросаны по разным ответам. Основываясь на моем недавнем опыте работы с этой ошибкой pytesseract в Windows, я последовательно записываю различные шаги, чтобы упростить устранение ошибки:
1. Установите tesseract с помощью установщика Windows, доступного по адресу: https://github.com/UB-Mannheim/tesseract/wiki
2. Обратите внимание на путь тессеракта из установки. Путь установки по умолчанию на момент редактирования был: C:\Users\USER\AppData\Local\Tesseract-OCR. Он может измениться, поэтому проверьте путь установки.
3. pip install pytesseract
4. Перед вызовом image_to_string установите путь к тессеракту в скрипте:
pytesseract.pytesseract.tesseract_cmd = r'C:\Users\USER\AppData\Local\Tesseract-OCR\tesseract.exe'
Это сработало для меня! Если у кого-то еще возникла проблема с поиском папки «Tesseract-OCR», выполните поиск также в папке «C: \ Program Files \».
Ты герой интернета
Пришлось перезагрузить компьютер, чтобы активировать настройку среды.
Этот ответ лучше, чем документация, потому что путь к tesseract_cmd действительно должен указывать на tesseract.exe. Этого нет в документации.
pytesseract.pytesseract.tesseract_cmd = r'C: \ Users \ USER \ AppData \ Local \ Tesseract-OCR \ tesseract.exe 'Этот ответ спас меня от важного крайнего срока на компьютерном зрении - проект OCR Большое спасибо @Nafeez Quraishi: - )
@Barmaley зачем перезагружать комп. Какую настройку среды вы имеете в виду? Я использую Windows и choco. По-видимому, настройка пути к среде не требуется. Кажется, работает из-за шага 4.
@Timo, ответ может измениться. Вы можете установить этот путь непосредственно в Python или через системные переменные среды. Поэтому я выбрал последнее
Если вы используете Textract lib и получаете ошибку 127, это может быть связано с отсутствием Tesseract. Следуйте инструкциям в этом ответе, но вместо того, чтобы указывать путь в скрипте (шаг pytesseract.pytesseract.tesseract_cmd), установите его как your environment variable
Я получаю такую ошибку в системе ubuntu, когда запускаю метод image_to_string. Как решить в случае linux?
@XueQing проверьте путь установки Tesseract-OCR в вашей системе. Замените этот путь на путь Windows, указанный в ответе, он должен работать.
Шаг 1:
Установите tesseract в вашу систему в соответствии с ОС. Последние установщики можно найти на https://github.com/UB-Mannheim/tesseract/wiki
Шаг 2: Установите следующие библиотеки зависимостей, используя: pip install pytesseract pip установить opencv-python pip install numpy
Шаг 3: Образец кода
import cv2
import numpy as np
import pytesseract
from PIL import Image
from pytesseract import image_to_string
# Path of working folder on Disk Replace with your working folder
src_path = "C:\\Users\\<user>\\PycharmProjects\\ImageToText\\input\\"
# If you don't have tesseract executable in your PATH, include the
following:
pytesseract.pytesseract.tesseract_cmd = 'C:/Program Files (x86)/Tesseract-
OCR/tesseract'
TESSDATA_PREFIX = 'C:/Program Files (x86)/Tesseract-OCR'
def get_string(img_path):
# Read image with opencv
img = cv2.imread(img_path)
# Convert to gray
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# Apply dilation and erosion to remove some noise
kernel = np.ones((1, 1), np.uint8)
img = cv2.dilate(img, kernel, iterations=1)
img = cv2.erode(img, kernel, iterations=1)
# Write image after removed noise
cv2.imwrite(src_path + "removed_noise.png", img)
# Apply threshold to get image with only black and white
#img = cv2.adaptiveThreshold(img, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 31, 2)
# Write the image after apply opencv to do some ...
cv2.imwrite(src_path + "thres.png", img)
# Recognize text with tesseract for python
result = pytesseract.image_to_string(Image.open(src_path + "thres.png"))
# Remove template file
#os.remove(temp)
return result
print('--- Start recognize text from image ---')
print(get_string(src_path + "image.png") )
print("------ Done -------")
1 - На вашем компьютере должен быть установлен Tesseract OCR.
get it from here. https://github.com/UB-Mannheim/tesseract/wiki
Download the suitable version.
2 - Добавьте путь Tesseract в вашу системную среду. т.е. редактировать системные переменные.
3 - Запустите pip install pytesseract и pip install tesseract
4 - Добавляйте эту строку в свой скрипт python каждый раз
pytesseract.pytesseract.tesseract_cmd = 'C:/OCR/Tesseract-OCR/tesseract.exe' # your path may be different
5 - Запустите код.
Где найти путь для Linux?
@Pallavi, это ответ Windows, поэтому, пожалуйста, не используйте Linux. Шаг 2 не нужен из-за 4.
В Windows путь к команде должен быть перенаправлен для установки tesseract в Windows по умолчанию.
pytesseract.pytesseract.tesseract_cmd = 'C:\Program Files (x86)\Tesseract-OCR\tesseract.exe'
pytesseract.pytesseract.tesseract_cmd = 'C:\Program Files\Tesseract-OCR\tesseract.exe'
На Mac вы можете установить его, как показано ниже. У меня это работает.
brew install tesseract
# {Windows 10 instructions}
# before you use the script you need to install the dependence
# 1. download the tesseract from the official link:
# https://github.com/UB-Mannheim/tesseract/wiki
# 2. install the tesseract
# i chosed this path
# *replace the user string in the below path with you name of user that you are using in your current machine
# C:\Users\user\AppData\Local\Tesseract-OCR\
# 3. Install the pillow for your python version
# * the best way for me is to install is this form(i'am using python3.7 version and in my CMD i run this version of python by typing py -3.7):
# * if you are using another version of python first look how you start the python from you CMD
# * for some machine the run of python from the CMD is different
# [examples]
# =================================
# PYTHON VERSION 3.7
# python
# python3.7
# python -3.7
# python 3.7
# python3
# python -3
# python 3
# py3.7
# py -3.7
# py 3.7
# py3
# py -3
# py 3
# PYTHON VERSION 3.6
# python
# python3.6
# python -3.6
# python 3.6
# python3
# python -3
# python 3
# py3.6
# py -3.6
# py 3.6
# py3
# py -3
# py 3
# PYTHON VERSION 2.7
# python
# python2.7
# python -2.7
# python 2.7
# python2
# python -2
# python 2
# py2.7
# py -2.7
# py 2.7
# py2
# py -2
# py 2
# ================================
# we are using pip to install the dependences
# because for me i start the python version 3.7 with the following line
# py -3.7
# open the CMD in windows machine and type the following line:
# py -3.7 -m pip install pillow
# 4. Install the pytesseract and tesseract for your python version
# * the best way for me is to install is this form(i'am using python3.7 version and in my CMD i run this version of python by typing py -3.7):
# we are using pip to install the dependences
# open the CMD in windows machine and type the following lines:
# py -3.7 -m pip install pytesseract
# py -3.7 -m pip install tesseract
#!/usr/bin/python
from PIL import Image
import pytesseract
import os
import getpass
def extract_text_from_image(image_file_name_arg):
# IMPORTANT
# if you have followed my instructions to install this dependence in above text explanatin
# for my machine is
# if you don't put the right path for tesseract.exe the script will not work
username = getpass.getuser()
# here above line get the username for your machine automatically
tesseract_exe_path_installation = "C:\\Users\\"+username+"\\AppData\\Local\\Tesseract-OCR\\tesseract.exe"
pytesseract.pytesseract.tesseract_cmd=tesseract_exe_path_installation
# specify the direction of your image files manually or use line bellow if the images are in the script directory in folder images
# image_dir = "D:\\GIT\\ai_example\\extract_text_from_image\\images"
image_dir=os.getcwd()+"\\images"
dir_seperator = "\\"
image_file_name=image_file_name_arg
# if your image are in different format change the extension(ex. ".png")
image_ext = ".jpg"
image_path_dir=image_dir+dir_seperator+image_file_name+image_ext
print("============================================================================ = ")
print("image used is in the following path dir:")
print("\t"+image_path_dir)
print("============================================================================ = ")
img=Image.open(image_path_dir)
text=pytesseract.image_to_string(img, lang = "eng")
print(text)
# change the name "image_1" whith the name without extension for your image name
# image_file_name_arg = "image_1"
image_file_name_arg = "image_2"
# image_file_name_arg = "image_3"
# image_file_name_arg = "image_4"
# image_file_name_arg = "image_5"
extract_text_from_image(image_file_name_arg)
# ==================================
# CREATED BY: SHERIFI
# e-mail: [email protected]
# git-link for script: https://github.com/sherifi/ai_example.git
# ==================================
Можете ли вы добавить текстовое описание к опубликованному вами фрагменту?
Я добавил текст во фрагмент для более удобного доступа и полного ответа
For Ubuntu 18.04
Если вы получаете сообщение об ошибке
tesseract is not installed or it's not in your path
and
OSError: [Errno 12] Cannot allocate memory
Это может быть проблема с выделением памяти подкачки
Вы можете проверить этот ответ, выделив больше памяти подкачки Надеюсь, что это поможет :)
В 64-разрядной версии Windows просто добавьте следующее в переменную среды PATH:
"C:\Program Files\Tesseract-OCR" и будет работать.
Я могу решить эту проблему, обновив переменную tesseract_cmd, указав путь bin / tesseract в файле pytesseract.py
У меня была такая же проблема в Windows. Я попытался обновить переменные среды для пути к tesseract, но это не сработало.
Что сработало для меня, так это изменить pytesseract.py, который можно найти по пути C:\Program Files\Python37\Lib\site-packages\pytesseract или обычно в C:\Users\YOUR USER\APPDATA\Python.
Я изменил одну строку, как показано ниже:
#tesseract_cmd = 'tesseract'
#tesseract_cmd = 'C:\Program Files\Tesseract-OCR\\tesseract.exe'
Обратите внимание, что мне пришлось поставить дополнительный \ перед tesseract, поскольку Python интерпретировал то же, что и \t, и вы получите следующее сообщение об ошибке:
pytesseract.pytesseract.TesseractNotFoundError: C:\Program Files\Tesseract-OCR esseract.exe is not installed or it's not in your path
Эта ошибка возникает из-за того, что на вашем компьютере не установлен tesseract.
Если вы используете Ubuntu, установите tesseract, используя следующую команду:
sudo apt-get install tesseract-ocr
Для Mac:
brew install tesseract
это сработало для меня. пришлось сделать это после установки pytesseract
Возможно, это происходит потому, что, даже если Tesseract установлен правильно, вы не установили свой язык, как это было в моем случае. К счастью, это очень легко исправить, и мне даже не пришлось возиться с tesseract_cmd.
sudo apt-get install tesseract-ocr -y
sudo apt-get install tesseract-ocr-spa -y
tesseract --list-langs
Обратите внимание, что во второй строке мы указали -spa для испанского языка.
Если установка прошла успешно, вы должны получить список доступных языков, например:
List of available languages (3):
eng
osd
spa
Я нашел это на это сообщение в блоге (испанский). Также есть пост для установка испанского языка в Windows (видимо, не так просто).
Примечание: поскольку в вопросе используется lang = 'eng', вероятно, это не ответ в данном конкретном случае. Но такая же ошибка может произойти и в этой другой ситуации, поэтому я разместил ответ здесь.
На эту проблему уже есть много хороших ответов, но я хотел бы поделиться замечательным сайтом, на который я наткнулся, когда не смог решить «Ошибка TesseractNotFound: tesseract не установлен или он не на вашем пути». Пожалуйста, обратитесь на этот сайт: https://www.thetopsites.net/article/50655738.shtml
Я понял, что получил эту ошибку, потому что я установил питессеракт с помощью pip, но забыл установить двоичный файл. Вероятно, на вашем компьютере отсутствует tesseract-ocr. Ознакомьтесь с инструкциями по установке здесь: https://github.com/tesseract-ocr/tesseract/wiki
На Mac, вы можете просто установить с помощью homebrew:
brew install tesseract
После этого все должно работать нормально!
В среде ОС Windows 10, у меня работает следующий метод:
Перейдите в эта ссылка, загрузите tesseract и установите его. Версия для Windows доступна здесь: https://github.com/UB-Mannheim/tesseract/wiki
Найдите файл скрипта pytesseract.py в папке C: \ Users \ User \ Anaconda3 \ Lib \ site-packages \ pytesseract и откройте его. Измените следующий код с tesseract_cmd = 'тессеракт' на: tesseract_cmd = 'C: / Программные файлы (x86) /Tesseract-OCR/tesseract.exe' (Это путь, по которому вы устанавливаете Tesseract-OCR, поэтому проверьте, где вы его устанавливаете, и, соответственно, обновите путь)
Вам также может потребоваться добавить переменную среды C: / Program Files (x86) / Tesseract-OCR /
Надеюсь, это сработает для вас!
Только для пользователей Windows:
Установите tesseract, используя:
pip install tesseract
а затем добавьте эту строку в свой код, обратите внимание на "\"
pytesseract.pytesseract.tesseract_cmd = "C:\Program Files (x86)\Tesseract-OCR\\tesseract.exe"
Решение для UBUNTU Сработало у меня:
Установлен tesseract в ubuntu по ссылке ниже
https://medium.com/quantrium-tech/installing-tesseract-4-on-ubuntu-18-04-b6fcd0cbd78f
Позже добавлен язык traindata в tessdata, перейдя по ссылке ниже
Похоже, проблема связана с последней версией модуля pip pytesseract = 0.3.7. Я понизил его до pytesseract = 0.3.6 и не вижу ошибки.
Для меня это сработало, просто установив tesseract с помощью conda.
conda install -c conda-forge tesseract
Для Windows простыми шагами:
Скачать версию для Windows с сайта https://github.com/UB-Mannheim/tesseract/wiki
Установить
Напишите следующее в вашем .py файле (проверьте установленное место)
pytesseract.pytesseract.tesseract_cmd = r"C:\Program Files\Tesseract-OCR\tesseract.exe"
img_text = pytesseract.image_to_string(Image.open(filename))
для меня это сработало, поставив одинарную кавычку
pytesseract.pytesseract.tesseract_cmd =r'C:/Program Files/Tesseract-OCR/tesseract.exe'
на самом деле вставка в двойные кавычки автоматически вставляла нежелательный символ
Для распространения Linux (Ubuntu)
пытаться
sudo apt install tesseract-ocr
sudo apt install libtesseract-dev
Что не работает? Можете ли вы добавить ошибки в вопросе?