Я пытаюсь заставить мою программу делать 8 снимков только при нажатии клавиши, но я не могу найти решение для нее. Я попробовал пакет с клавиатурой, и всякий раз, когда я нажимал клавишу, возникало сообщение об ошибке. Кстати, вот мой код:
import numpy as np
import cv2
import time
cap = cv2.VideoCapture('morning.mp4')
img_counter = 0
start_time = time.time()
x=0
while(cap.isOpened()):
ret, frame = cap.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.imshow('frame',gray)
if cv2.waitKey(47) & 0xFF == ord('q'):
break
#here is where the image capturing comes into play
if time.time() - start_time > 14: #<---- Check if 15 sec passed
img_name = "frame_{}.png".format(x)
cv2.imwrite(img_name, frame)
print("{} written!".format(img_counter))
start_time = time.time()
x += 1
img_counter += 1
if x == 8:
break
cap.release()
cv2.destroyAllWindows()
После комментария "# здесь начинается воспроизведение изображения", пока оператор break не станет местом, где я делаю снимки видео и хочу, чтобы это произошло часть кода с нажатием клавиши. Любая идея, как я должен go об этом?