我写了一个简单的脚本来连续捕捉网络摄像头的快照。我唯一的问题是视频捕捉模块并不总是抓取图像,而图像又会导致程序崩溃。我想我可以通过使用无限循环来解决这个问题,但我不确定如何去做。这是脚本:
from VideoCapture import Device
import datetime
def capt():
a = datetime.datetime.now().strftime("%Y%m%dT%H%M%S%ms")
b = str(a)
cam = Device(devnum=0)
cam.setResolution(1280, 960)
cam.saveSnapshot('%s.png' % (b))
for i in range(1, 100000):
capt()
答案 0 :(得分:4)
尝试使用cam.getImage
代替cam.saveSnapshot
。 cam.getImage
返回PIL图像,因此您可以确定是否实际抓取了任何帧。
以下代码尚未经过测试:
from VideoCapture import Device
import datetime
def capt():
a = datetime.datetime.now().strftime("%Y%m%dT%H%M%S%ms")
b = str(a)
cam = Device(devnum=0)
cam.setResolution(1280, 960)
return cam.getImage(), b
while True:
im, b = capt()
if im:
break
im.save('%s.png' % (b), 'JPEG')