在python中创建延时图像

在python中创建延时图像,python,opencv,timelapse,Python,Opencv,Timelapse,下面的代码从网络摄像头捕获图像,并保存到磁盘中。我想写一个程序,可以自动捕捉图像在每30秒,直到12小时。最好的方法是什么 import cv2 cap = cv2.VideoCapture(0) image0 = cap.read()[1] cv2.imwrite('image0.png', image0) 以下是根据@John Zwinck的答案进行的修改,因为我还需要将每30秒捕获的图像写入磁盘,并使用捕获的时间命名: import time, cv2 current_time

下面的代码从网络摄像头捕获图像,并保存到磁盘中。我想写一个程序,可以自动捕捉图像在每30秒,直到12小时。最好的方法是什么

import cv2     
cap = cv2.VideoCapture(0)
image0 = cap.read()[1]
cv2.imwrite('image0.png', image0)
以下是根据@John Zwinck的答案进行的修改,因为我还需要将每30秒捕获的图像写入磁盘,并使用捕获的时间命名:

import time, cv2
current_time = time.time()
endtime = current_time + 12*60*60
cap = cv2.VideoCapture(0)
while current_time < endtime:    
    img = cap.read()[1]
    cv2.imwrite('img_{}.png'.format(current_time), img)
    time.sleep(30)
导入时间,cv2 当前时间=time.time() 结束时间=当前时间+12*60*60 cap=cv2.视频捕获(0) 当前时间<结束时间: img=cap.read()[1] imwrite('img{}.png'.格式(当前时间),img) 时间。睡眠(30) 但是,上述代码每次只能在前一个文件上写入最后一个文件。正在寻找改进。

导入时间
import time
endTime = time.time() + 12*60*60 # 12 hours from now
while time.time() < endTime:
    captureImage()
    time.sleep(30)
endTime=time.time()+12*60*60#12小时后 while time.time()
导入时间
endTime=time.time()+12*60*60#12小时后
while time.time()
您的输出图像名称相同!!!在while循环中,
current\u time
不会更改,因此它将使用相同的名称保存每个帧。将
.format(当前时间)
替换为
.format(time.time())
应该可以工作

替换

当前时间 img=cap.read()[1] imwrite('img{}.png'.格式(当前时间),img) 时间。睡眠(30)


cv2.imwrite('img{}.png'.format(int(time.time())),img)

您的输出图像名称是相同的!!!在while循环中,
current\u time
不会更改,因此它将使用相同的名称保存每个帧。将
.format(当前时间)
替换为
.format(time.time())
应该可以工作

替换

当前时间 img=cap.read()[1] imwrite('img{}.png'.格式(当前时间),img) 时间。睡眠(30)


cv2.imwrite('img{}.png'.format(int(time.time())),img)

我还需要用time CapturedCreate命名每30秒捕获一次的图像,所以尝试实现它。这不是免费服务的代码。如果你被卡住了,一定要问一个新问题。我看你已经知道如何在文件名中输入时间了。你现在好了吗?我还需要写下每30秒捕获一次的图像,用时间capturedGreat命名,所以试着实现它。这不是免费服务的代码。如果你被卡住了,一定要问一个新问题。我看你已经知道如何在文件名中输入时间了。你现在好了?