Я написал код для включения захвата изображений с веб-канала с помощью OpenCV. Однако при каждом нажатии клавиши происходит задержка ввода, чтобы захватить мой кадр. Нет задержки, когда я использую это, чтобы выйти, но есть существенная задержка, когда я использую захват. Я измерил это, напечатав выписку внутри обоих случаев, при нажатии c
выписка откладывается перед печатью. Проблема кажется мне чем-то вроде ... ресурсы камеры используются и не высвобождаются вовремя для следующего нажатия клавиши или что-то в этом роде ... но не уверен.
import cv2 as cv
import numpy as np
import glob
import matplotlib.pyplot as plt
cap = cv.VideoCapture(1)
img_counter = 0
while True:
ret, frame = cap.read()
gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)
# cv.imshow('frame',frame)
cv.imshow('gray', gray)
if not ret:
break
if cv.waitKey(1) & 0xFF == ord('q'):
print('helloq')
break
elif cv.waitKey(1) & 0xFF == ord('c'):
print('hello{}'.format(img_counter))
img_name = "opencv_frame_{}.png".format(img_counter)
cv.imwrite(img_name, gray)
img_counter += 1
Я с использованием внешней веб-камеры и cv2.__version__
= 3.4.2`