在python中创建延时图像
下面的代码从网络摄像头捕获图像,并保存到磁盘中。我想写一个程序,可以自动捕捉图像在每30秒,直到12小时。最好的方法是什么在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
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())
应该可以工作
替换
当前时间cv2.imwrite('img{}.png'.format(int(time.time())),img)
您的输出图像名称是相同的!!!在while循环中,current\u time
不会更改,因此它将使用相同的名称保存每个帧。将.format(当前时间)
替换为.format(time.time())
应该可以工作
替换
当前时间cv2.imwrite('img{}.png'.format(int(time.time())),img)
我还需要用time CapturedCreate命名每30秒捕获一次的图像,所以尝试实现它。这不是免费服务的代码。如果你被卡住了,一定要问一个新问题。我看你已经知道如何在文件名中输入时间了。你现在好了吗?我还需要写下每30秒捕获一次的图像,用时间capturedGreat命名,所以试着实现它。这不是免费服务的代码。如果你被卡住了,一定要问一个新问题。我看你已经知道如何在文件名中输入时间了。你现在好了?