python - 什么是无效解析元组?

标签 python python-3.5 raspberry-pi3

我有一个 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"

也许这种格式导致了错误?我可以想象有人将 1920x10801920*1080 连接,导致这种困惑。

字符串“FHD”“1080p”也是正确的,如FHD 1080p cameras use that exact resolution .

关于python - 什么是无效解析元组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54843010/

相关文章:

opencv - 大多数 cv2 元组参数在 python 3.5 (windows 7) 中不起作用

python - 如何从一个 subprocess.Popen 命令同步运行多个命令?

windows - Windows 8 可以构建 Windows 10 IoT Core 应用程序吗?

python - 有时会显示 Exception TypeError 警告,有时不会在使用生成器的 throw 方法时显示

Python 扫描 WiFi

python - 为什么这将 2 评估为素数?

c++ - Ros安装在构建过程中卡住

opencv - Raspberry Pi 到 Arduino 通信

python - 在 GAE 登录重定向期间保留 POST 变量?

具有生存时间的 Python 内存缓存