В чем разница между Pytesseract и Tesserocr? - PullRequest
0 голосов
/ 19 февраля 2019

Я использую Python 3.6 в Windows 10, и у меня уже установлен Pytesseract, но я нашел в коде Tesserocr, который, кстати, я не могу установить.В чем разница?

У меня Visual Studio Community 2017 и Anaconda.

Ошибка следующая:

creating build\temp.win32-3.6\Release
    C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX86\x86\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -Ic:\users\omen\appdata\local\programs\python\python36-32\include -Ic:\users\omen\appdata\local\programs\python\python36-32\include "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include" "-ID:\Windows Kits\10\include\10.0.17763.0\ucrt" "-ID:\Windows Kits\10\include\10.0.17763.0\shared" "-ID:\Windows Kits\10\include\10.0.17763.0\um" "-ID:\Windows Kits\10\include\10.0.17763.0\winrt" "-ID:\Windows Kits\10\include\10.0.17763.0\cppwinrt" /EHsc /Tptesserocr.cpp /Fobuild\temp.win32-3.6\Release\tesserocr.obj -std=c++11 -DUSE_STD_NAMESPACE
    clÿ: Ligne de commande warning D9002ÿ: option '-std=c++11' inconnue ignor‚e
    tesserocr.cpp
    tesserocr.cpp(633): fatal error C1083: Impossible d'ouvrir le fichier includeÿ: 'leptonica/allheaders.h'ÿ: No such file or directory
    error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\VC\\Tools\\MSVC\\14.16.27023\\bin\\HostX86\\x86\\cl.exe' failed with exit status 2

Ответы [ 3 ]

0 голосов
/ 22 мая 2019

Pytesseract - это оболочка Python для двоичного файла Тессеракта.Он предлагает только следующие функции вместе с указанием флагов ( man-страница ):

  • get_tesseract_version Возвращает версию Tesseract, установленную в системе.
  • image_to_string Возвращает результат выполнения распознавания Тессеракта на изображении в строку
  • image_to_boxes Возвращает результат, содержащий распознанные символы и их границы блока
  • image_to_data Возвращает результат, содержащий границы блока, конфиденциальность,и другая информация.Требуется Тессеракт 3.05+.Для получения дополнительной информации, пожалуйста, ознакомьтесь с документацией Tesseract TSV
  • image_to_osd Возвращает результат, содержащий информацию об ориентации и обнаружении сценария.

Подробнее см. Описание проекта Информация.

С другой стороны, tesserocr напрямую взаимодействует с C ++ API Tesseract ( APIExample ), который является гораздо более гибким / сложным и предлагает расширенные функции.

0 голосов
/ 31 мая 2019

По моему опыту, Tesserocr намного быстрее, чем Pytesseract.

Tesserocr - это оболочка Python для API Tesseract C ++.Принимая во внимание, что pytesseract является оберткой CLI tesseract-ocr.

Таким образом, с Tesserocr вы можете загрузить модель в начале или вашу программу и запустить модель отдельно (например, в циклах для обработки видео).С помощью pytesseract каждый раз, когда вы вызываете функцию image_to_string, она загружает модель и обрабатывает изображение, поэтому медленнее обрабатывает видео.

Для установки tesserocr я просто набрал в терминале pip install tesserocr.

Для использования tesserocr

import tesserocr
from PIL import Image
api = tesserocr.PyTessBaseAPI()
pil_image = Image.open('sample.jpg')
api.SetImage(pil_image)
text = api.GetUTF8Text()

Для установки pytesseract: pip install pytesseract.

Для запуска:

import pytesseract
import cv2
image = cv2.imread('sample.jpg')
text = pytesseract.image_to_string(image)  
0 голосов
/ 19 февраля 2019

pytesseract - это только привязка для tesseract-ocr для Python.Итак, если вы хотите использовать tesseract-ocr в коде Python без использования модуля subprocess или os для запуска команд командной строки tesseract-ocr, то вы используете pytesseract.Но для того, чтобы использовать его, у вас должен быть установлен tesseract-ocr.

Вы можете думать об этом таким образом.Вам необходимо установить tesseract-ocr, потому что это программа, которая на самом деле работает и выполняет OCR.Но если вы хотите запустить его из кода Python как функцию, вы устанавливаете пакет pytesseract, который позволяет вам это сделать.Поэтому, когда вы запускаете pytesseract.image_to_string(Image.open('test-european.jpg'), lang='fra'), он вызывает tesseract-ocr с предоставленными аргументами.Результаты такие же, как при запуске tesseract test-european.jpg -l fra.Таким образом, вы получаете возможность вызывать это из кода, но, в конце концов, ему все равно нужно выполнить tesseract-ocr, чтобы выполнить фактическое OCR.

...