Задать вопрос

Как получить текст с картинки?

Посоветуйте пожалуйста модули для получения текста с картинки.
Желательно с рабочим примером что бы я мог сразу же проверить качество получения текста.
Пример картинок
5f4f55b6b40e1250070060.png
5f4f55c270024095200575.png
5f50cbcecd8f1747368568.png
  • Вопрос задан
  • 3008 просмотров
Подписаться 4 Простой Комментировать
Решения вопроса 1
fox_12
@fox_12 Куратор тега Python
Расставляю биты, управляю заряженными частицами
Пригласить эксперта
Ответы на вопрос 2
@fantom_ask Автор вопроса
Я создал тестовую версию кода
from PIL import Image
import pytesseract
import cv2
import os

pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files (x86)\Tesseract-OCR\tesseract.exe'

base_dir = os.path.dirname(os.path.abspath(__file__))
image = base_dir + r'\tmp\test.PNG'
d = Image.open(image)
preprocess = "thresh"

# загрузить образ и преобразовать его в оттенки серого
image = cv2.imread(image)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# проверьте, следует ли применять пороговое значение для предварительной обработки изображения

if preprocess == "thresh":
    gray = cv2.threshold(gray, 0, 255,
        cv2.THRESH_BINARY | cv2.THRESH_OTSU)[1]

# если нужно медианное размытие, чтобы удалить шум
elif preprocess == "blur":
    gray = cv2.medianBlur(gray, 3)

# сохраним временную картинку в оттенках серого, чтобы можно было применить к ней OCR
filename_dir = base_dir +"\gray\{}.png".format(os.getpid())
cv2.imwrite(filename_dir, gray)

# загрузка изображения в виде объекта image Pillow, применение OCR, а затем удаление временного файла
text = pytesseract.image_to_string(Image.open(filename_dir))
print(text)
os.remove(filename_dir)

# показать выходные изображения
cv2.imshow("Image", image)
cv2.imshow("Output", gray)

Результат
5f50cc8ba1301234189151.png
5f50cc957de78831806609.png
fright, tine to put the old girl to work.
Но результат так себе.
Ответ написан
Комментировать
ramzis
@ramzis
FullStackOverflow
Знакомся, это Adrian и вот тебе список его статей с примерами
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы