有没有办法在camera.close()之后重新打开picamera?

时间:2018-03-12 19:01:23

标签: python-3.x raspberry-pi3

我有一个功能,需要在开始时关闭相机并在结束时重新打开它。我知道关闭它我会这样做:

import picamera
camera = picamera.PiCamera()
camera.close()

如何重新打开它?

2 个答案:

答案 0 :(得分:0)

也许你可以创建一个新的相机实例。 (这可能是最简单的解决方案)

function convertFloatSwapWord(number) -- number is string of format = 0x########
     local x = 0
     x = float2hex(number)
     x = intToHex(x)
     x = string.sub(x,5,6) .. string.sub(x,3,4) .. string.sub(x,9,10) .. string.sub(x,7,8)
     x = hex2float(tonumber(x, 16))
     return x
end

或者,您可以尝试设计功能以保持相机打开,然后在程序结束时将其关闭。可以使用with语句自动实现:

camera = picamera.PiCamera()

但我担心picamera的API不允许重新打开相机。你也可以尝试" hack"使用"私人"进入picamera方法。 当您查看关闭代码时,您会看到:

with picamera.PiCamera() as camera:
    ...do something...

但是这需要重新打开其他几个对象,例如_preview,_splitter和_camera(它们甚至被设置为None)。这可能很难做到,不稳定且版本之间不兼容。所以,不要这样做。

答案 1 :(得分:0)

也许试试这个

camera = PiCamera()
camera.start_preview()
sleep(5)
camera.capture("object.jpeg")
camera.stop_preview()
camera.close()