- class QCamera#
-
概述#
属性#
exposureCompensationᅟ
- 以 EV 单位曝光补偿exposureMode属性
- 正在使用的曝光模式exposureTime属性
- 相机的曝光时间(秒)flashMode属性
- 正在使用的闪光灯模式flashReady属性
- 表明闪光灯是否已充电且准备好使用focusMode属性
- 当前相机聚焦模式isoSensitivity属性
- 传感器ISO灵敏度manualIsoSensitivity属性
- 描述手动设置的ISO灵敏度torchMode属性
- 正在使用的手电筒模式zoomFactor属性
- 当前缩放因子
方法#
def
__init__()
def
cameraDevice()
def
cameraFormat()
def
captureSession()
def
error()
def
errorString()
def
exposureMode()
def
exposureTime()
def
flashMode()
定义
focusMode()
定义
focusPoint()
定义
isActive()
定义
torchMode()
定义
zoomFactor()
槽函数#
信号#
定义
flashReady()
定义
hueChanged()
注意
本文档可能包含自动从C++翻译到Python的代码片段。我们始终欢迎对片段翻译的投稿。如果您发现翻译有问题,也可以通过在https:/bugreports.qt.io/projects/PYSIDE上创建工单来告诉我们。
详细描述#
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
QCamera
可用于QMediaCaptureSession
中进行视频录制和图像捕获。您可以使用
QCameraDevice
列出可用相机并选择需使用的相机。cameras = QMediaDevices.videoInputs() for cameraDevice in cameras: if cameraDevice.description() == "mycamera": camera = QCamera(cameraDevice)
在支持此类硬件的情况下,
QCamera
允许您调整焦距和放大倍数。这还包括类似于“微距”模式的功能(例如读取条形码或识别字母),或“触摸对焦” - 指示图像中的一个有趣区域,让硬件尝试对其进行对焦。camera.setFocusPointMode(QCamera.FocusModeManual) camera.setCustomFocusPoint(QPointF(0.25f, 0.75f)) # A point near the bottom left, 25% away from the corner, near that shiny vase
minimumZoomFactor()
和maximumZoomFactor()
方法提供支持的缩放倍数的范围。通过zoomTo()
方法可以更改缩放倍数。camera.setZoomFactor(3.0)
捕获相机帧的原始数据后,相机硬件和软件进行了各种图像处理任务以产生最终图像。这包括补偿环境光颜色、降低噪声,以及对图像进行其他一些调整。
您可以通过相机的属性来控制许多这些处理步骤。例如,您可以为处理图像设置白平衡(或颜色温度)。
camera.setWhiteBalanceMode(QCamera.WhiteBalanceFluorescent)
有关相机帧图像处理的更多信息,请参阅Camera Image Processing .
有关更多信息,请参阅camera overview 。
- 类 Error#
此枚举包含最后一个错误代码。
常量
描述
QCamera.NoError
没有发生错误。
QCamera.CameraError
发生了错误。
- 类 FocusMode#
常量
描述
QCamera.FocusModeAuto
连续自动对焦模式。
QCamera.FocusModeAutoNear
对近物体的连续自动对焦模式。
QCamera.FocusModeAutoFar
对远物体的连续自动对焦模式。
QCamera.FocusModeHyperfocal
聚焦到超焦距,实现最大景深。从这一距离的一半到无穷远所有的对象都将足够清晰。
QCamera.FocusModeInfinity
严格聚焦到无穷。
QCamera.FocusModeManual
手动或固定对焦模式。
新版本6.1。
- 类 FlashMode#
常量
描述
QCamera.FlashOff
闪光灯关闭。
QCamera.FlashOn
闪光灯开启。
QCamera.FlashAuto
自动闪光。
新版本6.1。
- 类 TorchMode#
常量
描述
QCamera.TorchOff
手电筒关闭。
QCamera.TorchOn
手电筒开启。
QCamera.TorchAuto
自动手电筒。
新版本6.1。
- 类 ExposureMode#
常量
描述
QCamera.ExposureAuto
自动模式。
QCamera.ExposureManual
手动模式。
QCamera.ExposurePortrait
人像曝光模式。
QCamera.ExposureNight
夜间模式。
QCamera.ExposureSports
运动曝光模式。
QCamera.ExposureSnow
雪景曝光模式。
QCamera.ExposureBeach
海滩曝光模式。
QCamera.ExposureAction
动作模式。自5.5版本起
QCamera.ExposureLandscape
风景模式。自5.5版本起
QCamera.ExposureNightPortrait
夜景人像模式。自5.5版本起
QCamera.ExposureTheatre
剧场模式。自5.5版本起
QCamera.ExposureSunset
日落模式。自5.5版本起
QCamera.ExposureSteadyPhoto
稳拍模式。自5.5版本起
QCamera.ExposureFireworks
烟花模式。自5.5版本起
QCamera.ExposureParty
派对模式。自5.5版本起
QCamera.ExposureCandlelight
烛光模式。自5.5版本起
QCamera.ExposureBarcode
条码模式。自5.5版本起
新版本6.1。
- 类 WhiteBalanceMode#
常量
描述
QCamera.WhiteBalanceAuto
自动白平衡模式。
QCamera.WhiteBalanceManual
手动白平衡。在此模式中,白平衡应使用
setColorTemperature()
QCamera.WhiteBalanceSunlight
日光白平衡模式。
QCamera.WhiteBalanceCloudy
阴天白平衡模式。
QCamera.WhiteBalanceShade
阴影白平衡模式。
QCamera.WhiteBalanceTungsten
钨丝(白炽灯)白平衡模式。
QCamera.WhiteBalanceFluorescent
荧光白平衡模式。
QCamera.WhiteBalanceFlash
闪光灯白平衡模式。
QCamera.WhiteBalanceSunset
日落白平衡模式。
新版本6.1。
- class Feature#
(继承自
enum.Flag
) 描述由相机支持的特性集合。返回值可以是以下特性的组合常量
描述
QCamera.Feature.ColorTemperature
相机支持设置自定的
colorTemperature
。QCamera.Feature.ExposureCompensation
相机支持设置自定的
exposureCompensation
。QCamera.Feature.IsoSensitivity
相机支持设置自定的
isoSensitivity
。QCamera.Feature.ManualExposureTime
相机支持设置
手动曝光时间
。QCamera.Feature.CustomFocusPoint
相机支持设置
自定焦点
。QCamera.Feature.FocusDistance
相机支持设置
focusDistance
属性。新版本6.1。
注意
属性可以直接使用当使用
from __feature__ import true_property
时,否则应通过访问器函数。- property active: bool#
描述相机是否当前处于活动状态。
- 访问函数
- property cameraDevice: QCameraDevice#
返回与相机关联的
QCameraDevice
对象。- property cameraFormat: QCameraFormat#
返回相机当前使用的格式。
注意
当使用 Android 目标设备的 FFMPEG 后端时,如果您请求 YUV420P 格式,您将收到一个完整的平面 4:2:0 YUV420P 或半平面 NV12/NV21。这取决于设备 OEM 实现的编解码器。
另请参阅
- 属性 colorTemperature: int#
如果当前白平衡模式为
WhiteBalanceManual
,则返回当前色温。对于其他模式,返回值未定义。该属性表示自定义焦点位置,以相对框架坐标表示:QPointF(0,0)指向左上角框架点,QPointF(0.5,0.5)指向框架中心。
自定义焦点位置属性仅在
FocusPointCustom
焦点模式下使用。您可以通过向
supportedFeatures()
方法传递 Feature.CustomFocusPoint
标志来查询是否支持自定义焦点点。- 属性 error: QCamera.Error#
返回摄像头的错误状态。
- 访问函数
- 属性 errorString: str#
返回描述摄像头错误状态的易读字符串。
- 访问函数
- 属性 exposureCompensation: float#
该属性以EV为单位保留曝光补偿。
曝光补偿属性允许调整自动计算的曝光。
- 属性 曝光模式: QCamera.ExposureMode#
此属性保存正在使用的曝光模式。
- 属性 曝光时间: float#
此属性保存相机在秒中的曝光时间。
- 访问函数
- 属性 闪光模式: QCamera.FlashMode#
此属性保存正在使用的闪光模式。
如果相机有闪光灯,则启用特定的闪光模式。
- 属性 闪光灯准备状态: bool#
此属性指示闪光灯是否已充电并可使用。
- 访问函数
- 属性 焦距: float#
该属性返回摄像头的近似焦点距离。报告的值介于0到1之间,0为最近的焦点距离,1为尽可能远的距离。注意,1通常是无穷远,但不总是。
除非将焦点模式设置为
FocusModeManual
,否则将忽略设置焦点距离。- 访问函数
信号
focusDistanceChanged()
- 属性focusMode:QCamera.FocusMode#
该属性保持当前的摄像头焦点模式。
为摄像头设置不同的焦点模式。所有自动对焦模式都将持续对焦。通过将焦点模式设置为
FocusModeManual
可以锁定焦点。这将维持当前焦点并停止任何自动对焦。另请参阅
返回自动对焦系统当前用于对焦的点的坐标。
- 访问函数
信号
focusPointChanged()
- 属性isoSensitivity:int#
该属性保留了传感器的ISO灵敏度。
描述相机当前使用的ISO灵敏度。
另请参阅
setAutoIsoSensitivity()
setManualIsoSensitivity()
- 访问函数
信号
isoSensitivityChanged()
- 属性manualExposureTime:int#
将手动曝光时间设置为
秒
- 访问函数
信号
manualExposureTimeChanged()
- 属性 manualIsoSensitivity: int#
此属性描述了手动设置的ISO灵敏度。
将此属性设置为-1(默认值)表示相机会自动调整ISO灵敏度。
- 属性 maximumZoomFactor: float#
返回最大缩放因子。
在不支持缩放的相机上,此值将为
1.0
。- 访问函数
- 属性 minimumZoomFactor: float#
返回最小缩放因子。
在不支持缩放的相机上,此值将为
1.0
。- 访问函数
- 属性 supportedFeatures: QCamera.Feature的组合#
返回此相机支持的特性。
另请参阅
- 访问函数
- 属性 torchMode: QCamera.TorchMode#
此属性表示正在使用的火炬模式。
火炬是持续的光源。它可以在低光条件下进行视频录制。启用火炬模式通常会覆盖任何当前设置的闪光灯模式。
- 访问函数
- 属性 whiteBalanceMode: QCamera.WhiteBalanceMode#
返回正在使用的白平衡模式。
- 属性 zoomFactor: float#
此属性保存当前的缩放因子。
获取或设置当前的缩放因子。值将在
minimumZoomFactor
和maximumZoomFactor
之间进行钳位。使用
parent
构造一个QCamera
。如果系统中有多于一个摄像头,则选择默认的摄像头。
从一个硬件摄像头位置的指定
position
构建一个QCamera
。例如,在手机上,这可以用来轻松地在前置和后置摄像头之间选择。
如果指定位置没有可用的摄像头或如果
position
为UnspecifiedPosition
,则将使用默认摄像头。- __init__(cameraDevice[, parent=None])
- 参数:
cameraDevice –
QCameraDevice
parent –
QObject
根据摄像头的描述
cameraDevice
和parent
构建一个QCamera
。- activeChanged(arg__1)#
- 参数:
arg__1 – bool
属性
active
的通知信号。- brightnessChanged()#
- cameraDevice()#
- 返回类型:
另请参阅
属性
cameraDevice
的获取器。- cameraDeviceChanged()#
属性
cameraDevice
的通知信号。- cameraFormat()#
- 返回类型:
另请参阅
属性
cameraFormat
的获取器。- cameraFormatChanged()#
属性
cameraFormat
的通知信号。- captureSession()#
- 返回类型:
返回相机连接的捕获会话,如果没有连接到捕获会话则返回nullptr。
使用
setCamera()
将相机连接到会话。- colorTemperature()#
- 返回类型:
int
属性
colorTemperature
的获取器。- colorTemperatureChanged()#
属性
colorTemperature
的通知信号。- contrastChanged()#
属性
customFocusPoint
的获取器。- customFocusPointChanged()#
属性
customFocusPointⁿ
的通知信号。属性
errorⁿ
的获取器。- errorChanged()#
属性
errorⁿ
的通知信号。当错误状态变为
error
时,发出此信号。错误描述作为errorString
提供。- errorString()#
- 返回类型:
str
属性
errorStringⁿ
的获取器。- exposureCompensation()#
- 返回类型:
float
属性
exposureCompensationⁿ
的获取器。- exposureCompensationChanged(arg__1)#
- 参数:
arg__1 – float
当曝光补偿变为
value
时发出信号。属性
exposureCompensationⁿ
的通知信号。- exposureMode()#
- 返回类型:
另请参阅
属性
exposureModeⁿ
的获取器。- exposureModeChanged()#
属性
exposureModeⁿ
的通知信号。- exposureTime()#
- 返回类型:
float
返回以秒为单位的当前曝光时间。
属性
exposureTime
的获取器。- exposureTimeChanged(speed)#
- 参数:
speed - float
信号:相机的曝光速度
speed
已改变。属性
exposureTime
的通知信号。- flashMode()#
- 返回类型:
另请参阅
属性
flashMode
的获取器。- flashModeChanged()#
属性
flashMode
的通知信号。- flashReady(arg__1)#
- 参数:
arg__1 – bool
信号:闪光灯的状态
ready
已改变。属性
flashReady
的通知信号。- focusDistance()#
- 返回类型:
float
另请参阅
属性
focusDistance
的获取器。- focusDistanceChanged(arg__1)#
- 参数:
arg__1 – float
属性
focusDistance
的通知信号。- focusMode()#
- 返回类型:
另请参阅
属性
focusMode
的获取器。- focusModeChanged()#
当
focusMode
发生变化时,发送信号。属性
focusPoint
的获取器。- focusPointChanged()#
属性
focusPoint
的通知信号。- hueChanged()#
- isActive()#
- 返回类型:
bool
如果相机当前处于活动状态,则返回 true。
属性
activeᅟ
的获取器。- isAvailable()#
- 返回类型:
bool
如果相机可以使用,则返回 true。
- isExposureModeSupported(mode)#
- 参数:
mode –
ExposureMode
- 返回类型:
bool
如果支持曝光
mode
,则返回 true。如果支持闪光灯
mode
,则返回 true。- isFlashReady()#
- 返回类型:
bool
如果闪光灯已充电,则返回 true。
属性
flashReadyᅟ
的获取器。如果相机支持对焦
mode
,则返回 true。如果支持手电筒
mode
,则返回 true。- isWhiteBalanceModeSupported(mode)#
- 参数:
mode –
WhiteBalanceMode
- 返回类型:
bool
如果支持白平衡
mode
,则返回 true。- isoSensitivity()#
- 返回类型:
int
属性
isoSensitivityᅟ
的获取器。- isoSensitivityChanged(arg__1)#
- 参数:
arg__1 – int
当灵敏度更改到
value
时发出的信号。属性
isoSensitivityᅟ
的通知信号。- manualExposureTime()#
- 返回类型:
float
返回以秒为单位的手动曝光时间,或者如果相机正在使用自动曝光时间,则返回 -1。
- manualExposureTimeChanged(speed)#
- 参数:
speed - float
属性
manualExposureTimeᅟ
的通知信号。- manualIsoSensitivity()#
- 返回类型:
int
属性
manualIsoSensitivityᅟ
的获取器。- manualIsoSensitivityChanged(arg__1)#
- 参数:
arg__1 – int
属性
manualIsoSensitivityᅟ
的通知信号。- maximumExposureTime()#
- 返回类型:
float
秒的最大曝光时间。
- maximumIsoSensitivity()#
- 返回类型:
int
返回相机支持的最大 ISO 灵敏度。
- maximumZoomFactor()#
- 返回类型:
float
属性
maximumZoomFactorᅟ
的获取器。- maximumZoomFactorChanged(arg__1)#
- 参数:
arg__1 – float
属性
maximumZoomFactorᅟ
的通知信号。- minimumExposureTime()#
- 返回类型:
float
秒的最小曝光时间。
- minimumIsoSensitivity()#
- 返回类型:
int
返回相机支持的最小 ISO 灵敏度。
- minimumZoomFactor()#
- 返回类型:
float
属性
minimumZoomFactor
的获取器。- minimumZoomFactorChanged(arg__1)#
- 参数:
arg__1 – float
属性
minimumZoomFactor
的通知信号。- saturationChanged()#
- setActive(active)#
- 参数:
active – bool
如果
active
为true
,则开启相机;如果为false
,则关闭相机。另请参阅
属性
active
的设置器。- setAutoExposureTime()#
使用自动计算曝光时间。
- setAutoIsoSensitivity()#
开启自动灵敏度。
- setCameraDevice(cameraDevice)#
- 参数:
cameraDevice –
QCameraDevice
将相机对象连接到由
cameraDevice
描述的物理相机设备。使用默认构造的QCameraDevice
对象作为cameraDevice
将将相机连接到系统的默认相机设备。另请参阅
属性
cameraDevice
的设置器。- setCameraFormat(format)#
- 参数:
format –
QCameraFormat
指示相机使用由
format
描述的格式。这可以用来定义用于录制和图像捕获的特定分辨率和帧率。注意
当使用 Android 目标设备的 FFMPEG 后端时,如果您请求 YUV420P 格式,您将收到一个完整的平面 4:2:0 YUV420P 或半平面 NV12/NV21。这取决于设备 OEM 实现的编解码器。
另请参阅
属性
cameraFormat
的设置器。- setColorTemperature(colorTemperature)#
- 参数:
colorTemperature – int
将手动白平衡设置为
colorTemperature
。这在使用whiteBalanceMode()
设置为WhiteBalanceManual
时使用。单位是开尔文(K)。设置颜色温度只有在
WhiteBalanceManual
被支持的情况下才会生效。在这种情况下,设置一个大于0的温度将自动将白平衡模式设置为WhiteBalanceManual
。将温度设置为0将重置白平衡模式到WhiteBalanceAuto
。另请参阅
colorTemperatureᅟ
属性的设置器。customFocusPointᅟ
属性的设置器。- setExposureCompensation(ev)#
- 参数:
ev – float
exposureCompensationᅟ
属性的设置器。- setExposureMode(mode)#
- 参数:
mode –
ExposureMode
另请参阅
exposureModeᅟ
属性的设置器。flashModeᅟ
属性的设置器。- setFocusDistance(d)#
- 参数:
d – float
另请参阅
focusDistanceᅟ
属性的设置器。属性
focusMode
的设置器。- setManualExposureTime(seconds)链接到此处
- 参数:
seconds – float
另请参阅
- setManualIsoSensitivity(iso)链接到此处
- 参数:
iso – int
另请参阅
属性
manualIsoSensitivity
的设置器。属性
torchMode
的设置器。- setWhiteBalanceMode(mode)链接到此处
- 参数:
mode –
WhiteBalanceMode
将白平衡设置为
mode
。另请参阅
属性
whiteBalanceMode
的设置器。- setZoomFactor(factor)链接到此处
- 参数:
factor – float
以每秒1因子每秒的速率放大到放大因子
factor
。另请参阅
属性
zoomFactor
的设置器。- start()链接到此处
启动相机。
与
setActive
(true) 相同。如果由于某些原因无法启动相机,将发出
errorOccurred
信号。- stop()链接到此处
停止相机。与
setActive
(false) 相同。- supportedFeatures()链接到此处
- 返回类型:
PySide6.QtMultimedia.QCamera.Feature的组合。
supportedFeatures
属性的获取器。- supportedFeaturesChanged()
supportedFeatures
属性的通知信号。- torchMode()
- 返回类型:
另请参阅
torchMode
属性的获取器。- torchModeChanged()
torchMode
属性的通知信号。- whiteBalanceMode()
- 返回类型:
另请参阅
whiteBalanceMode
属性的获取器。- whiteBalanceModeChanged()
whiteBalanceMode
属性的通知信号。- zoomFactor()
- 返回类型:
float
另请参阅
zoomFactor
属性的获取器。- zoomFactorChanged( arg__1 )
- 参数:
arg__1 – float
zoomFactor
属性的通知信号。- zoomTo( zoom, rate )
- 参数:
zoom – float
rate – float
使用
rate
来将缩放因子缩放至factor
。rate
以每秒的2的幂指定。速率为1时,从缩放因子1到4需要2秒钟。注意
并非所有相机都支持特定的速率。如果不支持,将尽可能快地进行缩放。