python 视频捕获循环

3 投票
1 回答
2632 浏览
提问于 2025-04-16 15:20

我写了一个简单的脚本,可以不断地从我的网络摄像头捕捉快照。现在我遇到的唯一问题是,视频捕捉模块并不是每次都能成功抓取到图像,这导致程序崩溃。我觉得可以通过使用无限循环来解决这个问题,但我不太确定该怎么做。以下是我的脚本:

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()

1 个回答

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')

撰写回答