使用Picamera拍摄暗帧图像时,覆盆子pi中的内存错误

时间:2017-07-17 16:25:20

标签: numpy image-processing raspberry-pi

好的,所以我试图用picamera拍摄100个暗框。 exposure_mode设置为“off”,快门速度设置为5毫秒我正在以相当简单的for循环执行此操作:

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。我添加了显式垃圾收集,因为它帮助了其他类似问题的人,但无济于事。任何想法?

1 个答案:

答案 0 :(得分:1)

这似乎是由于Raspberry Pi的限制,在下面粘贴的高级配方中,他们建议使用流式传输来捕获一系列图像,但这不适用于jpeg格式,这对于原始格式是必要的拜耳数据捕获:

https://picamera.readthedocs.io/en/release-1.10/recipes2.html

我通过制作一个控制相机实例化的外部for循环和一个运行25个图像的内部循环来解决这个问题。这会清除缓存并防止出现问题(通常发生在循环37-39之间)。