我有一个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:
设置后,属性会配置摄像头,以便下次调用这些方法时将使用新的分辨率。分辨率可以指定为元组,格式化为“WIDTHxHEIGHT”的字符串,或者包含公认的显示分辨率名称(例如“VGA”,“HD”,“1080p”等)的字符串。
您觉得它有助于提高可读性,您可以在元组值周围使用括号:
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。