Распознавание чисел на скриншоте с помощью tesseract в PythonPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Распознавание чисел на скриншоте с помощью tesseract в Python

Сообщение Anonymous »

Я пишу программу, предназначенную для распознавания чисел на скриншоте и заполнения ими массива. В целом программа работает хорошо, но иногда возникают проблемы: единицы либо не распознаются, либо распознаются как четверки. Прилагаю код программы и результат выполнения скрипта, где видно, что число 100 000 было распознано как 00000. Пробовал использовать разные параметры --oem и --psm, но ошибки сохраняются в любом случае.

Код: Выделить всё

import cv2
import pytesseract
import re
import pyautogui
import numpy as np

pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'

def screen():
screen_for_array = pyautogui.screenshot()
screen = np.array(screen_for_array)
screen = cv2.cvtColor(screen, cv2.COLOR_RGB2BGR)
return screen

def recognize_numbers(image, x, y, w, h):
roi = image[y:y+h, x:x+w]
gray = cv2.cvtColor(roi, cv2.COLOR_BGR2GRAY)

cv2.imshow('Image', gray)
cv2.waitKey(0)
cv2.destroyAllWindows()

custom_config = r'--oem 3 --psm 6 -c tessedit_char_whitelist=0123456789'
text = pytesseract.image_to_string(gray, config=custom_config)

numbers = re.findall(r'\d+', text)

return numbers

image_path = screen()
x, y, w, h = 333, 380, 90, 344
numbers = recognize_numbers(image_path, x, y, w, h)
print("number recognition:", numbers)
введите сюда описание изображения
Результат распознавания этого снимка экрана следующий: ['95000', '97000', '98111', '98123', '99999', '00000', '110000', '120000', '125000', '149990']
Кстати, это изображение является финальной версией, которую программа использует для распознавания.
Я пробовал использовать разные параметры --oem и --psm, но ошибки в любом случае сохраняются. Я использовал как цветное изображение скриншота, так и черно-белое (которое вы можете увидеть на прикрепленном скриншоте).

Подробнее здесь: https://stackoverflow.com/questions/787 ... -in-python
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»