Numpy 使用Picamera拍摄暗帧图像时,raspberry pi for loop出现内存错误
好吧,我试着用picamera拍摄100张深色照片。曝光模式设置为关闭,快门速度设置为5密耳秒,我在一个非常简单的for循环中进行此操作:Numpy 使用Picamera拍摄暗帧图像时,raspberry pi for loop出现内存错误,numpy,image-processing,raspberry-pi,Numpy,Image Processing,Raspberry Pi,好吧,我试着用picamera拍摄100张深色照片。曝光模式设置为关闭,快门速度设置为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_%
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()
从print语句中,我看到它进入循环38,并返回一个memoryerror。我添加了显式垃圾收集,因为它帮助了其他人解决了类似的问题,但没有任何效果。有什么想法吗?这似乎是由于Raspberry Pi的限制,在下面粘贴的高级配方中,他们建议使用流媒体来捕获一系列图像,但这不适用于jpeg格式,这是原始拜耳数据捕获所必需的:
我通过创建一个控制相机实例化的外部for循环和一个运行25幅图像的内部循环来解决这个问题。这将清除缓存并防止问题的出现,因为问题通常发生在循环37-39之间 您没有包含完整的代码,例如什么是摄影机对象?。相机可能正在循环迭代之间保存一些状态。如果没有关闭缓存的选项,请尝试在循环的每一次迭代中创建一个新的相机。谢谢,你的缓存注释为我指出了正确的方向,我发现这是Pi/picamera的一个限制,并重写它以每25个循环重新声明相机。循环4,内循环25。酷,你应该回答你自己的问题。