for i in range(NUM_DARK_FRAMES):
print ('loop %s' % (i+1))
camera.capture(output, 'jpeg', bayer=True )
arr = output.array
print ('saving array')
numpy.save('%sDarkFrame_%s' % (dark_frames_path, i+1), arr)
gc.collect()
从打印语句我看到它正在循环38,并返回一个memoryerror。我添加了显式垃圾收集,因为它帮助了其他类似问题的人,但无济于事。任何想法?
答案 0 :(得分:1)
这似乎是由于Raspberry Pi的限制,在下面粘贴的高级配方中,他们建议使用流式传输来捕获一系列图像,但这不适用于jpeg格式,这对于原始格式是必要的拜耳数据捕获:
https://picamera.readthedocs.io/en/release-1.10/recipes2.html
我通过制作一个控制相机实例化的外部for循环和一个运行25个图像的内部循环来解决这个问题。这会清除缓存并防止出现问题(通常发生在循环37-39之间)。