Невозможно извлечь каждый текст из изображения, используя openCV - PullRequest
1 голос
/ 28 апреля 2020

Я пытаюсь прочитать текст с изображения, используя openCV и Pytesseract, но мне кажется, что я не могу прочитать все, что там написано на этом изображении, либо в виде простого текста, либо как-то поверх lo go.

Я сделал что-то вроде этого: -

img = cv2.imread(image_path)
bw_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imshow('B/W Image', bw_img)
cv2.waitKey(0)
print(pytesseract.image_to_string(bw_img, lang='eng'))
cv2.destroyAllWindows()

и что я получаю взамен в качестве результата: -

Поддержка местного бизнеса и пожертвование для 'COVID-19 CRISIS RESPONSE ФОНД FR ie БОЛЬШОЙ ЭВАНСВИЛЬСКИЙ РЕГИОН

ПОДДЕРЖКА

ЛОКАЛЬНЫЙ

Я приложил изображения, с которых я пытаюсь прочитать текст, и как вы видите текст "ЗАКАЗАТЬ ЗДЕСЬ "внутри кнопки в форме прямоугольника lo go не может читать / извлекать с помощью openCV.

enter image description here

На изображениях ниже, оба Cloud Vision API и Pytesseract не могут извлечь из него правильный текст. для изображения во-первых, я получаю "вне клубной цены" и для второго "". enter image description here enter image description here

Если есть какой-либо другой способ чтения текста в python, который намного лучше или проще, чем этот, пожалуйста, поделитесь.

1 Ответ

0 голосов
/ 09 мая 2020

Тессеракту не очень нравится белый текст. Вот что я получу, если запусту его для ваших последних двух изображений

import cv2
import pytesseract

img = cv2.imread('599.jpg', 0)
# img = 255 - img #invert image
print(pytesseract.image_to_string(img, lang='eng', config = '--psm 12'))

print('====================================================')

img = cv2.imread('25off.jpg', 0)
# img = 255 - img #invert image
print(pytesseract.image_to_string(img, lang='eng', config = '--psm 12'))

output:

so

“I

99
====================================================
vs

25

off

(OP om ilo)

не полная катастрофа, но не большая. Теперь, если вы раскомментируете строки img = 255 - img, вы инвертируете изображения, и вы получите:

5

I)

99
====================================================
%

25

off

Club Price

, что намного лучше.

...