Pull to refresh

Comments 8

Спасибо, за статью, думаю вам будет интересно ещё поработать с Game State Server, у меня тоже есть идея распознавать сообщение о смерти Рошана и интегрировать с overlay, можем попробовать вместе - почитайте мою статью

Да, мне доводилось работать с GSI — хорошая штука. Кстати, для Overlay можно использовать Overwolf, там из коробки поддерживается эта фича

попробуйте сначала сделать upscale с помощью waifu2x ( waifu2x-ncnn-vulkan.exe -n 0 -s 2 -x -i input.png -o output.png) , обрезать и уже потом EasyOCR... можно попробовать отфильтровать по HSL перед OCR... Ещё можно подсчитать количество "белых" пикселей в столбцах обрезанного изображения и отфильтровать всё что меньше threshold'а...

З.Ы. Я так EVE автоматизировал.

З.Ы.Ы. Перед отправкой в OCR, поиграйтесь с последовательностью "предобработки" изображения.. я использую Aforge.net IPLab

Для тессеракта лучше инвертировать картинку, так как черный текст он лучше распознает. Плюс добавить паддинги. Результат должен улучшиться. Хотя такие размытые картинки не приходилось распознавать ?

Я пробовал решить похожую задачу, перебирал доступные инструменты вроде Tesseract и не нашёл ничего точнее и удобнее для себя, как поиск максимумов свёртки изображения с шаблонами цифр и чисел (довольно старый приём). Конечно, для этого понадобилось собрать библиотеку шаблонов.

Из минусов: решение чувствительно к разрешению скриншота, неустойчиво к повороту, для каждого шрифта понадобится новая коллекция шаблонов и так далее, и тому подобное.

Шаг 1. Вырезаем боксы с помощью Craft_text_detector:

часы в частности:

  1. скармливаем tesseract:

    import cv2
    import pytesseract
    import numpy as np
    from PIL import ImageGrab
    import time
    from pytesseract import Output
    from time import sleep

    config = r'--oem 3 --psm 6'
    #pytesseract.pytesseract.tesseract_cmd = 'C:\Program Files\Tesseract-OCR\tesseract.exe'
    img = cv2.imread('crop_2.png')
    img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

    hImg, wImg,_ = img.shape
    conf = r'--oem 3 --psm 6 outputbase digits'
    boxes = pytesseract.image_to_boxes(img,config=conf)
    for b in boxes.splitlines():
    #print(b)
    b = b.split(' ')
    print(b[0])
    x, y, w, h = int(b[1]), int(b[2]), int(b[3]), int(b[4])
    cv2.rectangle(img, (x,hImg- y), (w,hImg- h), (50, 50, 255), 2)
    cv2.putText(img,b[0],(x,hImg- y+25),cv2.FONT_HERSHEY_SIMPLEX,1,(50,50,255),2)
    cv2.imshow("Result",img)
    cv2.waitKey(1)

    *извиняюсь за отступы.

  2. Итоги:

    Ваш ход - попробуйте номер от автобуса с бегущей строкой распознать:

в принципе, вопрос снят. трансформер прочитал:

Sign up to leave a comment.

Articles