Napisałem sobie taki krótki program do robienia zdjęć z kamerki, gdzie potem sklejam z tego timelapse, ale nie rozumiem jednej rzeczy - zdjęcia zapisują się... z opóźnieniem. Musiałem dolać ukorzeniacza do awokado, więc zabierałem je sprzed kamerki. Po skończonej robocie (9:47) usiadłem do kompa i sprawdziłem poprzednie zdjęcia czy ustawiłem rośliny w miarę w tych samych miejscach. A tu się okazuje, że zdjęcie które powinno być zrobione w momencie skończenia, to tak naprawdę zdjęcie sprzed kilku minut. Łącznie zajęło mu 8 minut (5 zdjęć), zanim dotarł do momentu w którym skończyłem. Dlaczego tak jest? Czegoś tu nie rozumiem?
Kod:
import cv2
from time import sleep
from datetime import datetime
cam = cv2.VideoCapture(0)
cam.set(cv2.CAP_PROP_FRAME_HEIGHT, 1080.0)
cam.set(cv2.CAP_PROP_FRAME_WIDTH, 1920.0)
cam.set(cv2.CAP_PROP_AUTO_WB, 0.0)
cam.set(cv2.CAP_PROP_WB_TEMPERATURE, 7000)
cam.set(cv2.CAP_PROP_SATURATION, 75)
cam.set(cv2.CAP_PROP_CONTRAST, 100)
while True:
retval, frame = cam.read()
dt = datetime.now()
ts = int(datetime.timestamp(dt))
if retval != True:
print(str(dt) + ": Can't read frame")
sleep(5)
continue
cv2.imwrite(str(ts) + '.png', frame)
print(str(dt) + ": saved img " + str(ts) + ".png")
sleep(120)
#python #programowanie




