У меня есть скрипт Python, который захватывает сегмент экрана, считывает его текстовое значение и преобразует текст только в числовые символы, возвращая его. Моя проблема в том, что pytesseract читает только числа, цифры которых равны 3 или больше, и никогда не 2 или меньше.
Я захватил небольшой сегмент экрана и попросил pytesseract прочитать и извлечь из него текст. , но это работает только при наличии 3 или более цифр.
Пример изображения: Захваченный сегмент моего экрана
import cv2
import numpy as np
import pytesseract
import time
import pydirectinput
import pygetwindow as gw
from mss import mss
import re
def filter_numbers(text):
filtered_text = re.sub(r'\D', '', text)
return filtered_text
topMost = 1005
Pheight = 45
Pwidth = 55
leftMost = 170
useButtonCoordinateX, useButtonCoordinateY = 403, 726
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
def capture_screen_and_read_text():
region = {'top': topMost, 'left': leftMost, 'width': Pwidth, 'height': Pheight}
time.sleep(2)
with mss() as sct:
screen = sct.grab(region)
img = np.array(screen)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
_, thresh = cv2.threshold(gray, 150, 255, cv2.THRESH_BINARY)
resized_img = cv2.resize(thresh, None, fx=2, fy=2, interpolation=cv2.INTER_LINEAR)
cv2.imshow('Screen Capture', resized_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
text = pytesseract.image_to_string(resized_img)
return text
capture_screen_and_read_text()
Подробнее здесь: https://stackoverflow.com/questions/790 ... n-3-digits
Pytesseract OCR не обнаруживает числа длиной менее 3 цифр ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение