Какую стратегию я могу использовать для текстового угла OCR Magic the Gathering? - PullRequest
0 голосов
/ 18 октября 2019

Мне нужно распознать текст в нижнем левом углу на бумажных карточках Magic the Gathering (последний дизайн). Вот пример:

enter image description here

Если текст похож на этот textocr Я хочу получить следующий текст:

198/280 U
M20 EN

(мне не нужно имя автора карты - в данном примере Lake Hurwitz)

Какую библиотеку OCR я могу использовать? Я пробовал с Tesseract без какой-либо настройки, но результаты не верны. Любой совет или ссылка на проект, который уже делает это?

1 Ответ

2 голосов
/ 18 октября 2019

Вы можете сделать это с помощью tesseract (3.04.01), продезинфицировав свое изображение, как показано ниже:

import numpy as np
import cv2

def prepro(zone, prefix):
    filename = 'stackmagic.png'
    oriimg = cv2.imread(filename)

    #keep the interesting part
    (a,b,c,d) = zone
    text_zone = oriimg[a:b, c:d]
    height, width, depth = text_zone.shape

    #resize it to be bigger (so less pixelized)
    H = 50
    imgScale = H/height
    newX,newY = text_zone.shape[1]*imgScale, text_zone.shape[0]*imgScale
    newimg = cv2.resize(text_zone,(int(newX),int(newY)))

    #binarize it
    gray = cv2.cvtColor(newimg, cv2.COLOR_BGR2GRAY)
    th, img = cv2.threshold(gray, 130, 255, cv2.THRESH_BINARY);

    #erode it
    kernel = np.ones((1,1),np.uint8)
    erosion = cv2.erode(img,kernel,iterations = 1)
    cv2.imwrite(prefix+'_ero.png', erosion)

    cv2.imshow("Show by CV2",erosion)
    cv2.waitKey(0)


prepro((16,27, 6,130), 'upzone')
prepro((27,36, 6,130), 'downzone')

из вашего обрезанного изображения вы получите

верхняя часть:

upper part

и нижняя часть:

enter image description here

и tesseract действительно может извлечь

xx$ tesseract upzone_ero.png stdout
198/ 280 U

xx$ tesseract downzone_ero.png stdout
M20 ~ EN Duluu Hun-nu

Обратите внимание, что нам не удалось извлечь Люка, но, надеюсь, вы его не заинтересовали:)

Есть и другие инструментыно это было бы рекламой и было бы субъективно ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...