【发布时间】:2016-08-31 14:03:12
【问题描述】:
我有一个树莓派相机 v2.1 版,能够拍摄 3280x2464 分辨率的照片。
我已经使用 raspistill 命令进行了测试,结果似乎很好:
raspistill -o 8mp.png -w 3280 -h 2464
返回信息:
8mp.png JPEG 3280x2464 3280x2464+0+0 8-bit sRGB 4.524MB 0.010u 0:00.010
但是,当我使用 Python 代码拍照时,它会拒绝它。这是我正在使用的代码:
#!/usr/bin/python
import picamera
camera = picamera.PiCamera()
camera.resolution = (3280,2464)
camera.capture("test.png")
camera.close()
这是错误:
mmal: mmal_vc_port_enable: failed to enable port vc.ril.image_encode:out:0(PNG ): ENOSPC
mmal: mmal_port_enable: failed to enable port vc.ril.image_encode:out:0(PNG )(0x700090) (ENOSPC)
Traceback (most recent call last):
File "pic.py", line 6, in <module>
camera.capture("test.png")
File "/usr/local/lib/python2.7/dist-packages/picamera/camera.py", line 1383, in capture
encoder.start(output)
File "/usr/local/lib/python2.7/dist-packages/picamera/encoders.py", line 1024, in start
super(PiCookedOneImageEncoder, self).start(output)
File "/usr/local/lib/python2.7/dist-packages/picamera/encoders.py", line 394, in start
self.output_port.enable(self._callback)
File "/usr/local/lib/python2.7/dist-packages/picamera/mmalobj.py", line 813, in enable
prefix="Unable to enable port %s" % self.name)
File "/usr/local/lib/python2.7/dist-packages/picamera/exc.py", line 157, in mmal_check
raise PiCameraMMALError(status, prefix)
picamera.exc.PiCameraMMALError: Unable to enable port vc.ril.image_encode:out:0(PNG ): Out of resources (other than memory)
我注意到使用 .jpg 而不是 .png 会起作用。这对我来说似乎有点奇怪,因为文档说它应该可以工作,并且 raspistill 命令也适用于 .png 上的此分辨率。
有什么想法吗?
【问题讨论】:
-
看看 picamera (picamera.readthedocs.io/en/release-1.12) 库怎么样?
-
正如我之前提到的,我查看了文档,其中特别提到 PNG 有效。
-
尝试降低分辨率
标签: python camera raspberry-pi