无法启用连接:资源错误PiCamera

时间:2017-09-10 00:43:10

标签: python python-3.5 raspberry-pi3

我正在创建使用PiCam的论文设备。我的问题是,每次我使用相机捕获图像后,当我单击GUI上的按钮再次启动相机时,它不能再次使用并显示错误:

picamera.exc.PiCameraMMALError:无法启用连接:资源不足

如何在拍摄图像后以某种方式停止相机,它还会停止使用picamera的资源?

这是我的相机代码:

def startcam():
        camera = PiCamera()
        GPIO.output(16, True)
        filename = datetime.datetime.now().strftime("%Y-%m-%d-%H.%M.%S.jpg")
        time.sleep(2)
        camera.start_preview()
        sleep(1)
        GPIO.output(16, False)
        GPIO.output(13, True)
        camera.capture(filename)
        GPIO.output(13, False)
        sleep(1)
        camera.stop_preview()
        webbrowser.open(filename)

GPIO代码适用于我的LED闪光灯和红外线LED,因为我使用的是NOIR相机。

感谢。

2 个答案:

答案 0 :(得分:0)

如果要捕获许多图像,则应在函数外部全局声明相机:

camera=Picamera()
def startcam():
   GPIO.output(16, True)
   ...

答案 1 :(得分:0)

我写了一个小程序,需要一系列图片。它在IDLE中工作正常,但从命令行中却遇到了资源完全相同的错误。通过在程序中的{KeyboardInterrupt ::}之后添加camera.close()可以解决此问题,即Ctrl+C(在Python shell中)。通常在需要中断循环时使用。