我正在使用Picamera和Raspberry Pi拍照,然后分析它们之间的差异。我正在使用以下代码捕获到BytesIO流,然后将其读入Numpy数组(从this guide借用):
stream = io.BytesIO()
with picamera.PiCamera() as camera:
camera.resolution = (100, 60)
camera.framerate = 30
while not done:
camera.capture(stream, format='jpeg', use_video_port=True)
if previousData == None:
previousData = cv2.imdecode(np.fromstring(stream.getvalue(), dtype=np.uint8), 1)
previousData = previousData[:, :, ::-1]
else:
timeStartNumpy = time.time()
currentData = cv2.imdecode(np.fromstring(stream.getvalue(), dtype=np.uint8), 1)
currentData = previousData[:, :, ::-1]
....(omitted analysis code)....
previousData = currentData
分析代码可以正常工作,但它会重复使用相同的帧。我假设我从流中读取的方式一定是个问题,但我在Python中没有足够的经验知道如何更改它。任何提示或帮助将不胜感激。
答案 0 :(得分:1)
在else
分支中,您将当前捕获的帧分配给名称currentDate
,只是为了在previousData
的下一行中替换它。因此,之前行中捕获的帧将丢失,因为没有名称或其他参考指向它。只需删除第二个作业。