Вот быстрое и простое решение:
В Python time.time()
захватывает текущее время в секундах с 1 января 1970 года. Если вы просто захватываете текущее время и сравниваете его с вашим циклом whileвремя, когда вы последний раз захватывали кадр, затем вы можете проверить, прошло ли 2 секунды, а затем принять решение «сохранить» ваш кадр, как вы упомянули.Вы можете попробовать следующий код:
import cv2
import time
cam=cv2.VideoCapture(0)
last_recorded_time = time.time() # this keeps track of the last time a frame was processed
while True:
curr_time = time.time() # grab the current time
# keep these three statements outside of the if statement, so we
# can still display the camera/video feed in real time
suc, img=cam.read()
#operation on image, it's not important
cv2.imshow(...)
if curr_time - last_recorded_time >= 2.0: # it has been at least 2 seconds
# NOTE: ADD SOME STATEMENTS HERE TO PROCESS YOUR IMAGE VARIABLE, img
# IMPORTANT CODE BELOW
last_recorded_time = curr_time
Обратите внимание, что я добавил 4 строки кода и изменил 1 (from time import sleep
на import time
).Надеюсь, это поможет!Он не остановит вашу программу и не замедлит ее вообще.