В настоящее время я изучаю возможности OpenCV, я пытаюсь делать живые обновления со своего экрана, я пытаюсь передать данные в CNN. Я использую OpenCV для подачи массива градаций серого в сверточные слои. В любом случае. есть несколько чисел экрана, которые остаются в том же месте, которое я хочу захватить. Я хочу, чтобы OpenCV захватил 2 точки на экране, где цифры обновляются, и обработал изображение в число, которое я могу дать CNN. Я нашел координаты на экране в терминах координат пикселей в верхнем левом и правом углу и нижнем левом и правом углу. Мне нужно использовать весь экран (я пытаюсь создать программу для игры) для ввода в игру, но я хочу получить цифры на экране для обратной связи с сетью, пытаясь использовать неконтролируемое Q-обучение. Как бы мне go получить два числа на экране и превратить их в числа с плавающей точкой, которые я мог бы подать в сеть, на экране много цифр, мне нужны только два, и они никогда не меняются местами, Могу ли я запечатлеть два положения экрана и превратить изображение в текст? Мне бы понадобилось 3 записи в любой момент времени, хотя и правильно, по одной для каждого числа, чтобы получить число для сети, и одну для всего экрана для сверточного слоя? это возможно? как я могу написать это? Любые предложения будут ценны. Вот то, что я имею до сих пор.
import numpy as np
from PIL import ImageGrab
import cv2
import time
while True:
def process_img(original_image):
processed_img = cv2.cvtColor(original_image, cv2.COLOR_BGR2GRAY)
return processed_img
def process_img2(original_image):
processed_img = cv2.cvtColor(original_image, cv2.COLOR_BGR2GRAY)
return processed_img
def main():
for i in range(25):
screen = np.array(ImageGrab.grab(bbox=(20, 150, 950, 950)))
new_screen = process_img(screen)
#last_time = time.time()
cv2.imshow('window', new_screen)
if cv2.waitKey(25) & 0xFF == ord('q'):
cv2.destroyAllWindows()
break
main()
Это возвращает левую сторону моего экрана как массив градаций серого (я думаю), там есть 2 числа в части экрана, которая обновляется каждую секунду. Буду ли я делать несколько снимков экрана или как лучше?