Ответы пользователя по тегу Tesseract
  • Как распознать рукопись в pytesseract?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Тессерактом вряд ли достигнете желаемое. Обучайте нейронки...
    Туториалов по распознаванию mnist - валом. А у вас - задача очень похожая.
    Ответ написан
    4 комментария
  • Tesseract роспознование цвета текста?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Смотрите по преобладающему цвету в канале RGB.
    Вот пример на коленке:
    import os
    import matplotlib.pyplot as plt
    from matplotlib.pyplot import imshow
    import cv2
    import numpy
    import pytesseract
    
    os.environ['TESSDATA_PREFIX'] = r'C:/Program Files (x86)/Tesseract-OCR/tessdata'
    
    TESS_PATH = r"C:/Program Files (x86)/Tesseract-OCR/tesseract.exe"
    pytesseract.pytesseract.tesseract_cmd = TESS_PATH
    
    IMAGE1 = '.\img\Screenshot_9.png'
    IMAGE2 = '.\img\Screenshot_10.png'
    IMAGE3 = '.\img\Screenshot_11.png'
    IMAGE4 = '.\img\Screenshot_12.png'
    
    def detect_color(color):
        THRES = 10
        if bool(color[2] - color[1] > THRES and color[2] - color[0] > THRES):
            return 'red'
        if bool(color[1] - color[2] > THRES and color[1] - color[0] > THRES):
            return 'green'
        if bool(color[0] - color[1] > THRES and color[0] - color[2] > THRES):
            return 'blue'
        return 'unknown'
    
    plt.rcParams['figure.figsize'] = [15, 7]
    f1,ax = plt.subplots(4,2)
    
    for i,im in enumerate([IMAGE1, IMAGE2, IMAGE3, IMAGE4]):
        image = cv2.imread(im)
        average = image.mean(axis=0).mean(axis=0)
        gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
        (thresh, bw) = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
        print(pytesseract.image_to_string(bw).strip().ljust(60), detect_color(average))
        ax[i][0].imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))
        fillcolor = numpy.full((3, 3, 3), average, dtype=numpy.ubyte)
        ax[i][1].imshow(cv2.cvtColor(numpy.full((3, 3, 3), average, dtype=numpy.ubyte), cv2.COLOR_BGR2RGB))

    60d8b054eeb1a092435690.png
    Ответ написан
    Комментировать
  • Как можно распознать цифры с помощью tesseract?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    У вас такие цифры - что можно и без тессеракта обойтись
    Если вы можете, то дайте, пожалуйста, ссылку на статью или любой ресурс с этой информацией или расскажите сами, если есть время и желание

    Простая логика. Нарезаете изображение на одинаковые прямоугольники и тыкаете по нескольким ключевым координатам, специфичным для цифр
    5ef48501d4782332889281.png
    В точке "1" черный цвет будет у 1, 3 и 0, в "2" - у 3, 4, и 1 и т.п.
    и составляете условие - если в "1" - черный, в "2" - черный, в "3" - белый... - то найденная цифра - "3"
    если в в "1" - черный, в "2" - белый, в "3" - белый... - то найденная цифра - "0"
    если в в "1" - черный, в "2" - черный, в "3" - черный... - то найденная цифра - "1"
    и т.п.
    Ответ написан
    2 комментария
  • Не корректно работает tesseract?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Я пользуюсь OpenCV для кропа фото. Попробовал на вашем фото - все работает даже без преобразования над картинкой

    image = cv2.imread(FILE)
    cropped = image[10:40, 0:80]
    result = pytesseract.image_to_string(cropped)


    5ed3b0bbb1522320100975.png
    Ответ написан
    8 комментариев