Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Numpy 使用Picamera拍摄暗帧图像时,raspberry pi for loop出现内存错误_Numpy_Image Processing_Raspberry Pi - Fatal编程技术网

Numpy 使用Picamera拍摄暗帧图像时,raspberry pi for loop出现内存错误

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_%

好吧,我试着用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_%s' % (dark_frames_path, i+1), arr)
  gc.collect()

从print语句中,我看到它进入循环38,并返回一个memoryerror。我添加了显式垃圾收集,因为它帮助了其他人解决了类似的问题,但没有任何效果。有什么想法吗?

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


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

您没有包含完整的代码,例如什么是摄影机对象?。相机可能正在循环迭代之间保存一些状态。如果没有关闭缓存的选项,请尝试在循环的每一次迭代中创建一个新的相机。谢谢,你的缓存注释为我指出了正确的方向,我发现这是Pi/picamera的一个限制,并重写它以每25个循环重新声明相机。循环4,内循环25。酷,你应该回答你自己的问题。