#python #computer-vision #tesseract #python-tesseract
#python #компьютерное зрение #tesseract #python-tesseract
Вопрос:
Я пробовал pytesseract для English
. Он работает нормально и дает ожидаемый результат. Но когда речь идет о других языках (например, арабском), отличных от английского, это не удается сделать и выдает следующую ошибку:
TesseractError: (1, 'Error opening data file C:\Program Files (x86)\Tesseract-OCR\ara.traineddata
Please make sure the TESSDATA_PREFIX environment variable is set to your "tessdata" directory.
Failed loading language 'ara' Tesseract couldn't load any languages!
Could not initialize tesseract.')
Пытался выполнить это ( ara.traineddata
) из github
, но не могу это сделать.
Комментарии:
1. что означает, что вы не можете скачать с github?
2. Я нашел страницу Traineddata Files для версии 4.00 , и там есть ссылка, по
ara.traineddata
которой я могу скачать. Я не тестировал этот файл с помощью tesseract3. после загрузки я могу сделать
tesseract image.png output-file --tessdata-dir folder/with/files/tessdata/ -l ara
4. Сделал согласно developpaper.com /… и установил
testerocr
иtesserocr
. И теперь pytesseract не создает никаких ошибок, а также не генерирует никаких выходных данных. Просто делает clearscreen из python_console. Вместо pytesseract только tesserocr мог выполнять эту работу.5.
pytesseract
просто выполните команду, напримерtesseract image.png output-file ...
, чтобы она также могла получать аргументы типа--tessdata-dir
— возможно, как словарь с дополнительными опциями
Ответ №1:
pytesseract
есть только оболочка в программе tesseract
(OCR, разработанная Google)
tesseract
нужны файлы с языками, которые вы можете найти в его документации: файлы данных.
Вы можете загрузить ara.traineddata в какую-либо папку и запустить ее с опцией --tessdata-dir some_folder
, а затем она будет использоваться ara.traineddata
из этой папки.
Если вы сохраняете ara.traineddata
в той же папке, в которой выполняете код, вы можете использовать .
(точка)
tesseract image.jpg stdout -l ara --tessdata-dir .
И то же самое вы можете сделать, pytesseract
используя config=
import pytesseract
text = pytesseract.image_to_string('image.jpg', lang='ara', config='--tessdata-dir .')
print(text)
В конце концов, вы можете использовать переменную среды TESSDATA_PREFIX
для этого
import pytesseract
import os
os.environ['TESSDATA_PREFIX'] = '.'
text = pytesseract.image_to_string('text-ara.jpg', lang='ara')
print(text)
Позже вы можете установить TESSDATA_PREFIX
непосредственно в системе или попытаться перейти ara.traineddata
в папку с другими файлами .traineddata
. Должно быть где eng.traineddata
-то, что вы можете попытаться найти с помощью программ / команд, таких как find
Я протестировал его с помощью этого изображения, которое я нашел также в документации: Использование командной строки
Кстати: tesseract
обычно текст сохраняется в файле, но если вы используете stdout
, он отображает текст в консоли.