@Foxford12

Почему не работает код?

Я пытаюсь сделать фотографии каждые 15сек но почему-то фотографии создаются не обращая внимание на интервал, логика такая надо хранить в глобальной переменой время когда было сохранено последний снимок с вэб-камеры потом надо проверить прошло ли 15сек с момента встречи если да то делать еще 1 снимок если нет тогда еще ждать, в переменной pip название снимка и кол-во снимков когда запускается код должен автоматически снять 1 снимок и в переменную time должно сохранится последнее время снимка и в переменную time_15 должно сохранится когда можно сделать следующий снимок но фотографии создаются каждую секунду что делать помогите пожалуйста

import numpy as np
import cv2
import time
import datetime as dt
from time import sleep

cap = cv2.VideoCapture(0)
pip = 0
time = 0
time_15 = 0
while True:
        _, image = cap.read()
        pip += 1
        #sleep(1)
        height, width = image.shape[0], image.shape[1]


        if pip == 1:
            cv2.imwrite(f'{pip}.png', image)
            time = dt.datetime.now()
            time_15 = time+dt.timedelta(seconds=15)
            print(pip, time, time_15)
        else:
            if time_15 >= time:
                time = time+dt.timedelta(seconds=1)
                print(pip, "Еще не прошло время",  time,  time_15)
            else:
                cv2.imwrite(f'{pip}.png', image)
                time = dt.datetime.now()
                time_15 = time+dt.timedelta(seconds=15)
                print(pip, time, time_15)

        cv2.imshow("Web-Kamera", image)
        cv2.waitKey(5)

cv2.destroyAllWindows()
cap.release()
  • Вопрос задан
  • 146 просмотров
Пригласить эксперта
Ответы на вопрос 2
@nonameovskiy
import numpy as np
import cv2
import time
import datetime as dt
import time

cap = cv2.VideoCapture(0)
pip = 0
time = dt.datetime.now()
time_15 = time+dt.timedelta(seconds=15)
while True:
time.sleep(15)
_, image = cap.read()
pip += 1
height, width = image.shape[0], image.shape[1]

if time <= time_15:
cv2.imwrite(f'{pip}.png', image)
time = dt.datetime.now()
time_15 = time+dt.timedelta(seconds=15)
else:
continue

cv2.imshow("Web-Kamera", image)
cv2.waitKey(5)

cv2.destroyAllWindows()
cap.release()
Ответ написан
Vindicar
@Vindicar
RTFM!
if time <= time_15:

По логике должно быть if time > time_15:
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы