Я слежу за этим проектом по созданию ИИ, который будет играть в игру Google Chrome Dino.Я застрял в какой-то момент во время захвата экрана для генерации данных тренировки.Я новичок в CV
Предполагается, что проект должен прервать подачу видео и сохранить файл CSV в cv2.waitKey (25) & 0xFF == ord ('q'): условие.Что я считаю, когда клавиша "q" нажата.Но ничего не происходит, когда я нажимаю «q».Оператор print в этом условии if не печатается, когда я нажимаю q.
Также, хотя консоль печатает оператор печати в состоянии «вверх», «вниз» или «t», но нажатие клавиши
cv2.imwrite('./images/frame_(0).jpg'.format(x), img)
Не работает, так как изображения в папке изображений не сохраняются.
Вот код
import cv2
from mss import mss
import numpy as np
import keyboard
#Captures dinasour run for given coordinates
def start():
"""
Capture video feed frame by frame, crops out coods and the dino then process
"""
sct = mss()
coordinates = {
'top': 168,
'left': 230,
'width': 624,
'height': 141
}
with open('actions.csv','w') as csv:
x = 0
while True:
img = np.array(sct.grab(coordinates))
#crop out the dino from the image array
img = img[::,75:624]
#edge detection to reduce ammount of image processing work
img = cv2.Canny(img, threshold1=100, threshold2=200)
if keyboard.is_pressed('up arrow'):
cv2.imwrite('./images/frame_(0).jpg'.format(x), img)
csv.write('1\n')
print('jump write')
x += 1
if keyboard.is_pressed('down arrow'):
cv2.imwrite('./images/frame_(0).jpg'.format(x), img)
csv.write('2\n')
print('duck')
x += 1
if keyboard.is_pressed('t'):
cv2.imwrite('./images/frame_(0).jpg'.format(x), img)
csv.write('0\n')
print('nothing')
x += 1
# break the video feed
if cv2.waitKey(25) & 0xFF == ord('q'):
csv.close()
cv2.destroyAllWindows()
print('Exited')
break
def play():
sct = mss()
coordinates = {
'top': 168,
'left': 230,
'width': 624,
'height': 141
}
img = np.array(sct.grab(coordinates))
# crop out the dinosaur from the image array
img = img[::,75:615]
# edge detection to reduce amount of image processing work
img = cv2.Canny(img, threshold1=100, threshold2=200)