Маленькое изображение OCR с помощью python

мне нужно расшифровать небольшие изображения с помощью python 2.7, содержит цену.

введите здесь описание изображения

как вы можете видеть, изображение очень маленькое и содержит некоторые значения.

моя цель - декодировать до: 654.10

я пытаюсь с tesseract, но мне не повезло.

import pytesseract
print(pytesseract.image_to_string(Image.open('example.png') , lang='eng', boxes=False,config='--psm 10 --eom 3 -c tessedit_char_whitelist=€0123456789'))

я получил :

€553 1

я пытаюсь использовать онлайн-конвертер и работаю как шарм (https://convertio.co/it/ocr/), поэтому я думаю, что это будет возможно.

у кого-то есть идея получше?

Спасибо

(Извините за мой плохой английский)

ОБНОВИТЬ :

я пытаюсь порог изображения без везения ... снова ...

import cv2
img = cv2.imread('cropped.png')
grayscaled = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
retval, threshold2 = cv2.threshold(grayscaled,125,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)
cv2.imwrite('threshold.jpeg',threshold2)
print(pytesseract.image_to_string(Image.open('threshold.jpeg') , lang='eng', boxes=False,config='--psm 10 --eom 3 -c tessedit_char_whitelist=0123456789'))

вывод: 553 0 вывод изображения: введите здесь описание изображения

пс. я обрезал исходное изображение, удалив знак € ... но все равно получил ошибку.

Спасибо


person ilmetu    schedule 17.01.2018    source источник
comment
Может помочь предварительная обработка изображения, чтобы сделать текст более четким. Что-то похожее на «порог» в фотошопе.   -  person Paandittya    schedule 18.01.2018
comment
@Paandittya, к сожалению, это не работает ... в любом случае ... еще одна идея? Спасибо   -  person ilmetu    schedule 19.01.2018
comment
поэтому я думал о том, чтобы изменить размер изображения в 2x-3x, а затем попытаться извлечь из него текст. В процессе я наткнулся на эту тему Link. Если вы еще не пробовали это, попробуйте. Это похоже на аналогичную проблему, с которой вы столкнулись. Надеюсь, это поможет.   -  person Paandittya    schedule 19.01.2018
comment
@Paandittya, это работает, большое спасибо.   -  person ilmetu    schedule 20.01.2018
comment
Добро пожаловать дружище :)   -  person Paandittya    schedule 20.01.2018


Ответы (1)


Я решаю свою проблему, изменяя размер изображения, а затем применяя порог.

этот код увеличит размер изображения:

    basewidth = 300
    img = Image.open(saved_location)
    wpercent = (basewidth/float(img.size[0]))
    hsize = int((float(img.size[1])*float(wpercent)))
    img = img.resize((basewidth,hsize), Image.ANTIALIAS)
    img.save(saved_location)

Благодаря сообщению пользователя в комментариях.

person ilmetu    schedule 20.01.2018