pytesseract

Содержание
Введение
Скачать
Установить
Добавить в PATH
Узнать версию
Похожие статьи

Введение

Скачать

Версии для Windows можно скачать с сайта университета Маннхейма uni-mannheim.de

Github репозиторий находится здесь

Установка

Рассмотрим установку на примере tesseract-ocr-w64-setup-v5.3.0.20221214.exe

Выберите язык

Установка Tesseract в Windows 11 изображение с сайта www.devhops.ru изображение с сайта www.devhops.ru
Установка Tesseract в Windows 11
https://devhops.ru

Нажмите Next >

Установка Tesseract в Windows 11 изображение с сайта www.devhops.ru изображение с сайта www.devhops.ru
Установка Tesseract в Windows 11
https://devhops.ru

Нажмите I Agree

Установка Tesseract в Windows 11 изображение с сайта www.devhops.ru изображение с сайта www.devhops.ru
Установка Tesseract в Windows 11
https://devhops.ru

Нажмите Next >

Установка Tesseract в Windows 11 изображение с сайта www.devhops.ru изображение с сайта www.devhops.ru
Установка Tesseract в Windows 11
https://devhops.ru

Нажмите Next >

Установка Tesseract в Windows 11 изображение с сайта www.devhops.ru изображение с сайта www.devhops.ru
Установка Tesseract в Windows 11
https://devhops.ru

Нажмите Next >

Установка Tesseract в Windows 11 изображение с сайта www.devhops.ru изображение с сайта www.devhops.ru
Установка Tesseract в Windows 11
https://devhops.ru

Нажмите Install

Установка Tesseract в Windows 11 изображение с сайта www.devhops.ru изображение с сайта www.devhops.ru
Установка Tesseract в Windows 11
https://devhops.ru

Нажмите Next >

Установка Tesseract в Windows 11 изображение с сайта www.devhops.ru изображение с сайта www.devhops.ru
Установка Tesseract в Windows 11
https://devhops.ru

Нажмите Finish

Установка Tesseract в Windows 11 изображение с сайта www.devhops.ru изображение с сайта www.devhops.ru
Установка Tesseract в Windows 11
https://devhops.ru

Добавить в PATH

Добавить путь до Tesseract в системную переменную PATH можно командой PowerShell

$Env:Path += ';C:/Program Files/Tesseract-OCR'

В Git Bash

export PATH="/c/Program Files/Tesseract-OCR:$PATH"

Узнать версию

Узнать версию Tesseract можно командой PowerShell

tesseract --version

tesseract v5.3.0.20221214 leptonica-1.78.0 libgif 5.1.4 : libjpeg 8d (libjpeg-turbo 1.5.3) : libpng 1.6.34 : libtiff 4.0.9 : zlib 1.2.11 : libwebp 0.6.1 : libopenjp2 2.3.0 Found AVX2 Found AVX Found FMA Found SSE4.1 Found libarchive 3.5.0 zlib/1.2.11 liblzma/5.2.3 bz2lib/1.0.6 liblz4/1.7.5 libzstd/1.4.5 Found libcurl/7.77.0-DEV Schannel zlib/1.2.11 zstd/1.4.5 libidn2/2.0.4 nghttp2/1.31.0

image_to_string()

tesseract ├── demo.py ├── img.png └── venv

heihei.ru

# demo.py import pytesseract from PIL import Image img = Image.open("img.png") text = pytesseract.image_to_string(img, lang='eng') print(text)

HeiHei.ru

heihei.ru

HeiHei.ru HeiHei.ru TestSetup.ru

Размывание

Проверим насколько хорошо Tesseract справляется с размытыми изображениями.

import pytesseract from PIL import Image, ImageFilter img = Image.open("img.png") for i in range(1, 4): print("blur: ", i) img_blur = img.filter(ImageFilter.GaussianBlur(i)) img_blur.show() text_blur = pytesseract.image_to_string(img_blur, lang='eng') print(text_blur)

heihei.ru

blur: 1 HeiHei.ru HeiHei.ru TestSetup.ru

heihei.ru

blur: 2 HeiHei.ru HeiHei.ru

heihei.ru

blur: 3

blur 1 ещё распознаётся правильно. blur 2 уже находит только верхнюю строку. blur 3 уже ничего не находит.

В моём сетапе вторая строка ещё видна при blur 1.8 и уже не видна при blur 1.9.

Интересный результат получился при blur 2.1 первое слово распознано верно, второе уже с ошибкой

heihei.ru

blur: 2.1 HeiHei.ru Heitteiru

Шум

Проверим насколько хорошо Tesseract справляется с шумом.

import pytesseract import matplotlib.pyplot as plt from PIL import Image import numpy as np from skimage import color img = Image.open("img.png") img_array = np.array(img.convert("RGB")) img_grey = color.rgb2gray(img_array) noise = np.ones_like(img_grey) * 0.2 * (img_grey.max() - img_grey.min()) noise[np.random.random(size=noise.shape) > 0.5] *= -1 img_noisy = img_grey + noise img_noisy_uint8 = (np.clip(img_noisy, 0, 1) * 255).astype(np.uint8) img_noisy_pil = Image.fromarray(img_noisy_uint8, mode="L") plt.imshow(img_noisy_pil, cmap="gray") plt.axis("off") plt.show() text_noisy = pytesseract.image_to_string(img_noisy_pil, lang="eng") print(text_noisy)

heihei.ru

HeiHei.ru HeiHei.ru TestSetup.ru

Если увеличить амплитуду шума до 0.3 а процент отражений до 70 Tesseract в моём сетапе потеряет точку в первом слове.

# Увеличим амплитуду шума с 0.2 до 0.3 noise = np.ones_like(img_grey) * 0.3 * (img_grey.max() - img_grey.min()) # Увеличим процент значений которые мы заменяем на противоположные с 50 до 70 noise[np.random.random(size=noise.shape) > 0.3] *= -1

heihei.ru

HeiHeiru HeiHei.ru TestSetup.ru

Если увеличить амплитуду шума до 0.5 а процент отражений до 80 Tesseract в моём сетапе уже ничего не найдёт.

heihei.ru

Отражение

Проверим как Tesseract будет читать отзеркаленное сверху вниз изображение.

import pytesseract from PIL import Image img = Image.open("img.png") img_flipped = img.transpose(Image.FLIP_TOP_BOTTOM) img_flipped.show() text_flipped = pytesseract.image_to_string(img_flipped, lang='eng') print(text_flipped)

heihei.ru

Isefe6gnb-in HSIH6Ikn HEIHEI Ln

Снова хочу обратить внимание на то, что с первым словом HeiHei.ru Tesseract справился хуже чем со вторым таким же словом.

pdf

С помощью Tesseract можно конвертировать изображени в формат, готовый для сохранения в .pdf

import pytesseract from PIL import Image img = Image.open("img.png") pdf_bytes = pytesseract.image_to_pdf_or_hocr("img.png", extension="pdf") with open("output.pdf", "wb") as pdf_file: pdf_file.write(bytearray(pdf_bytes))

Автор статьи: Андрей Олегович

Похожие статьи
OCR
OCR в Python

РЕКЛАМА хостинга Beget, которым я пользуюсь более десяти лет

Изображение баннера

Конец рекламы хостинга Beget, который я всем рекомендую.

Поиск по сайту

Подпишитесь на Telegram канал @aofeed чтобы следить за выходом новых статей и обновлением старых

Перейти на канал

@aofeed

Задать вопрос в Телеграм-группе

@aofeedchat

Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящую по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: