我有一个 Raspberry Pi 相机,根据 specs 其“最佳分辨率”为 1080p
我有一个小脚本,除了更改一些设置之外,没有实现任何其他功能。
import picamera
import picamera.array
import numpy
from fractions import Fraction
camera = icamera.PiCamera()
camera.resolution = 1920*1080
camera.iso = 0
camera.exposure_mode = 'off'
camera.shutter_speed = '10000'
camera.start_preview()
当我执行代码时,我会看到以下错误消息,后跟以代码结尾的代码我只包含错误消息的最后两行
raise PiCameraValueError("Invalid resolution tuple: %r" % value)
picamera.exc.PiCameraValueError: Invalid resolution tuple: 2073600
我尝试将分辨率更改为各种分辨率,例如 1280*720 一直降至 640*480,唯一的更改是错误消息的最后一个数字。
不幸的是,这在网上没有详细记录,所以我无法了解发生了什么。
那么这个错误消息是什么?我需要在代码中修改什么来设置分辨率?
最佳答案
camera.resolution
应设置为具有两个整数的元组:
camera.resolution = 1920, 1080
注意逗号。来自 PiCamera.resolution
documentation :
When set, the property configures the camera so that the next call to these methods will use the new resolution. The resolution can be specified as a tuple, as a string formatted 'WIDTHxHEIGHT', or as a string containing a commonly recognized display resolution name (e.g. “VGA”, “HD”, “1080p”, etc).
如果您认为这有助于提高可读性,您可以在元组值周围使用括号:
camera.resolution = (1920, 1080)
您传入的是乘法结果(单个整数),1920*1080
是 1920 乘以 1080 就是 2073600,即异常消息中的值。
您还可以使用字符串值,使用 x
分隔宽度和高度:
camera.resolution = "1920x1080"
也许这种格式导致了错误?我可以想象有人将 1920x1080
与 1920*1080
连接,导致这种困惑。
字符串“FHD”
和“1080p”
也是正确的,如FHD 1080p cameras use that exact resolution .
关于python - 什么是无效解析元组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54843010/