class QCamera#

QCamera 类提供了对系统相机设备的接口。 更多信息

Inheritance diagram of PySide6.QtMultimedia.QCamera

概述#

属性#

方法#

槽函数#

信号#

注意

本文档可能包含自动从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 实现的编解码器。

另请参阅

videoFormats

访问函数
属性 colorTemperature: int#

如果当前白平衡模式为 WhiteBalanceManual,则返回当前色温。对于其他模式,返回值未定义。

访问函数
属性 customFocusPoint: QPointF#

该属性表示自定义焦点位置,以相对框架坐标表示: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,否则将忽略设置焦点距离。

访问函数
属性focusMode:QCamera.FocusMode#

该属性保持当前的摄像头焦点模式。

为摄像头设置不同的焦点模式。所有自动对焦模式都将持续对焦。通过将焦点模式设置为FocusModeManual可以锁定焦点。这将维持当前焦点并停止任何自动对焦。

另请参阅

isFocusModeSupported

访问函数
属性focusPoint:QPointF#

返回自动对焦系统当前用于对焦的点的坐标。

访问函数
属性isoSensitivity:int#

该属性保留了传感器的ISO灵敏度。

描述相机当前使用的ISO灵敏度。

另请参阅

setAutoIsoSensitivity() setManualIsoSensitivity()

访问函数
属性manualExposureTime:int#

将手动曝光时间设置为

访问函数
属性 manualIsoSensitivity: int#

此属性描述了手动设置的ISO灵敏度。

将此属性设置为-1(默认值)表示相机会自动调整ISO灵敏度。

访问函数
属性 maximumZoomFactor: float#

返回最大缩放因子。

在不支持缩放的相机上,此值将为 1.0

访问函数
属性 minimumZoomFactor: float#

返回最小缩放因子。

在不支持缩放的相机上,此值将为 1.0

访问函数
属性 supportedFeatures: QCamera.Feature的组合#

返回此相机支持的特性。

另请参阅

特性

访问函数
属性 torchMode: QCamera.TorchMode#

此属性表示正在使用的火炬模式。

火炬是持续的光源。它可以在低光条件下进行视频录制。启用火炬模式通常会覆盖任何当前设置的闪光灯模式。

访问函数
属性 whiteBalanceMode: QCamera.WhiteBalanceMode#

返回正在使用的白平衡模式。

访问函数
属性 zoomFactor: float#

此属性保存当前的缩放因子。

获取或设置当前的缩放因子。值将在 minimumZoomFactormaximumZoomFactor 之间进行钳位。

访问函数
__init__([parent=None])#
参数:

parentQObject

使用parent构造一个QCamera

如果系统中有多于一个摄像头,则选择默认的摄像头。

__init__(position[, parent=None])
参数:

从一个硬件摄像头位置的指定position构建一个QCamera

例如,在手机上,这可以用来轻松地在前置和后置摄像头之间选择。

如果指定位置没有可用的摄像头或如果positionUnspecifiedPosition,则将使用默认摄像头。

__init__(cameraDevice[, parent=None])
参数:

根据摄像头的描述cameraDeviceparent构建一个QCamera

activeChanged(arg__1)#
参数:

arg__1 – bool

属性active的通知信号。

brightnessChanged()#
cameraDevice()#
返回类型:

QCameraDevice

另请参阅

setCameraDevice()

属性cameraDevice的获取器。

cameraDeviceChanged()#

属性cameraDevice的通知信号。

cameraFormat()#
返回类型:

QCameraFormat

另请参阅

setCameraFormat()

属性cameraFormat的获取器。

cameraFormatChanged()#

属性cameraFormat的通知信号。

captureSession()#
返回类型:

QMediaCaptureSession

返回相机连接的捕获会话,如果没有连接到捕获会话则返回nullptr。

使用setCamera()将相机连接到会话。

colorTemperature()#
返回类型:

int

另请参阅

setColorTemperature()

属性colorTemperature的获取器。

colorTemperatureChanged()#

属性colorTemperature的通知信号。

contrastChanged()#
customFocusPoint()#
返回类型:

QPointF

另请参阅

setCustomFocusPoint()

属性customFocusPoint的获取器。

customFocusPointChanged()#

属性 customFocusPointⁿ 的通知信号。

error()#
返回类型:

错误

属性 errorⁿ 的获取器。

errorChanged()#

属性 errorⁿ 的通知信号。

errorOccurred(error, errorString)#
参数:
  • errorError

  • errorString – str

当错误状态变为 error 时,发出此信号。错误描述作为 errorString 提供。

errorString()#
返回类型:

str

属性 errorStringⁿ 的获取器。

exposureCompensation()#
返回类型:

float

属性 exposureCompensationⁿ 的获取器。

exposureCompensationChanged(arg__1)#
参数:

arg__1 – float

当曝光补偿变为 value 时发出信号。

属性 exposureCompensationⁿ 的通知信号。

exposureMode()#
返回类型:

ExposureMode

另请参阅

setExposureMode()

属性 exposureModeⁿ 的获取器。

exposureModeChanged()#

属性 exposureModeⁿ 的通知信号。

exposureTime()#
返回类型:

float

返回以秒为单位的当前曝光时间。

属性 exposureTime 的获取器。

exposureTimeChanged(speed)#
参数:

speed - float

信号:相机的曝光速度 speed 已改变。

属性 exposureTime 的通知信号。

flashMode()#
返回类型:

FlashMode

另请参阅

setFlashMode()

属性 flashMode 的获取器。

flashModeChanged()#

属性 flashMode 的通知信号。

flashReady(arg__1)#
参数:

arg__1 – bool

信号:闪光灯的状态 ready 已改变。

属性 flashReady 的通知信号。

focusDistance()#
返回类型:

float

另请参阅

setFocusDistance()

属性 focusDistance 的获取器。

focusDistanceChanged(arg__1)#
参数:

arg__1 – float

属性 focusDistance 的通知信号。

focusMode()#
返回类型:

FocusMode

另请参阅

setFocusMode()

属性 focusMode 的获取器。

focusModeChanged()#

focusMode 发生变化时,发送信号。

focusPoint()#
返回类型:

QPointF

属性 focusPoint 的获取器。

focusPointChanged()#

属性 focusPoint 的通知信号。

hueChanged()#
isActive()#
返回类型:

bool

如果相机当前处于活动状态,则返回 true。

属性 activeᅟ 的获取器。

isAvailable()#
返回类型:

bool

如果相机可以使用,则返回 true。

isExposureModeSupported(mode)#
参数:

modeExposureMode

返回类型:

bool

如果支持曝光 mode,则返回 true。

isFlashModeSupported(mode)#
参数:

modeFlashMode

返回类型:

bool

如果支持闪光灯 mode,则返回 true。

isFlashReady()#
返回类型:

bool

如果闪光灯已充电,则返回 true。

属性 flashReadyᅟ 的获取器。

isFocusModeSupported(mode)#
参数:

modeFocusMode

返回类型:

bool

如果相机支持对焦 mode,则返回 true。

isTorchModeSupported(mode)#
参数:

modeTorchMode

返回类型:

bool

如果支持手电筒 mode,则返回 true。

isWhiteBalanceModeSupported(mode)#
参数:

modeWhiteBalanceMode

返回类型:

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

如果 activetrue,则开启相机;如果为 false,则关闭相机。

另请参阅

isActive()

属性 active 的设置器。

setAutoExposureTime()#

使用自动计算曝光时间。

setAutoIsoSensitivity()#

开启自动灵敏度。

setCameraDevice(cameraDevice)#
参数:

cameraDeviceQCameraDevice

将相机对象连接到由 cameraDevice 描述的物理相机设备。使用默认构造的 QCameraDevice 对象作为 cameraDevice 将将相机连接到系统的默认相机设备。

另请参阅

cameraDevice()

属性 cameraDevice 的设置器。

setCameraFormat(format)#
参数:

formatQCameraFormat

指示相机使用由 format 描述的格式。这可以用来定义用于录制和图像捕获的特定分辨率和帧率。

注意

当使用 Android 目标设备的 FFMPEG 后端时,如果您请求 YUV420P 格式,您将收到一个完整的平面 4:2:0 YUV420P 或半平面 NV12/NV21。这取决于设备 OEM 实现的编解码器。

另请参阅

cameraFormat()

属性 cameraFormat 的设置器。

setColorTemperature(colorTemperature)#
参数:

colorTemperature – int

将手动白平衡设置为 colorTemperature。这在使用 whiteBalanceMode() 设置为 WhiteBalanceManual 时使用。单位是开尔文(K)。

设置颜色温度只有在 WhiteBalanceManual 被支持的情况下才会生效。在这种情况下,设置一个大于0的温度将自动将白平衡模式设置为 WhiteBalanceManual。将温度设置为0将重置白平衡模式到 WhiteBalanceAuto

另请参阅

colorTemperature()

colorTemperatureᅟ 属性的设置器。

setCustomFocusPoint(point)#
参数:

pointQPointF

另请参阅

customFocusPoint()

customFocusPointᅟ 属性的设置器。

setExposureCompensation(ev)#
参数:

ev – float

另请参阅

exposureCompensation()

exposureCompensationᅟ 属性的设置器。

setExposureMode(mode)#
参数:

modeExposureMode

另请参阅

exposureMode()

exposureModeᅟ 属性的设置器。

setFlashMode(mode)#
参数:

modeFlashMode

另请参阅

flashMode()

flashModeᅟ 属性的设置器。

setFocusDistance(d)#
参数:

d – float

另请参阅

focusDistance()

focusDistanceᅟ 属性的设置器。

setFocusMode(mode)链接到此处
参数:

modeFocusMode

另请参阅

focusMode()

属性 focusMode 的设置器。

setManualExposureTime(seconds)链接到此处
参数:

seconds – float

另请参阅

manualExposureTime()

setManualIsoSensitivity(iso)链接到此处
参数:

iso – int

另请参阅

手动IsoSensitivity()

属性 manualIsoSensitivity 的设置器。

setTorchMode(mode)链接到此处
参数:

modeTorchMode

另请参阅

torchMode()

属性 torchMode 的设置器。

setWhiteBalanceMode(mode)链接到此处
参数:

modeWhiteBalanceMode

将白平衡设置为 mode

另请参阅

whiteBalanceMode()

属性 whiteBalanceMode 的设置器。

setZoomFactor(factor)链接到此处
参数:

factor – float

以每秒1因子每秒的速率放大到放大因子 factor

另请参阅

zoomFactor()

属性 zoomFactor 的设置器。

start()链接到此处

启动相机。

setActive (true) 相同。

如果由于某些原因无法启动相机,将发出 errorOccurred 信号。

stop()链接到此处

停止相机。与 setActive (false) 相同。

supportedFeatures()链接到此处
返回类型:

PySide6.QtMultimedia.QCamera.Feature的组合。

supportedFeatures 属性的获取器。

supportedFeaturesChanged()

supportedFeatures 属性的通知信号。

torchMode()
返回类型:

TorchMode

另请参阅

设置TorchMode()

torchMode 属性的获取器。

torchModeChanged()

torchMode 属性的通知信号。

whiteBalanceMode()
返回类型:

WhiteBalanceMode

whiteBalanceMode 属性的获取器。

whiteBalanceModeChanged()

whiteBalanceMode 属性的通知信号。

zoomFactor()
返回类型:

float

另请参阅

setZoomFactor()

zoomFactor 属性的获取器。

zoomFactorChanged( arg__1 )
参数:

arg__1 – float

zoomFactor 属性的通知信号。

zoomTo( zoom, rate )
参数:
  • zoom – float

  • rate – float

使用rate来将缩放因子缩放至factor

rate以每秒的2的幂指定。速率为1时,从缩放因子1到4需要2秒钟。

注意

并非所有相机都支持特定的速率。如果不支持,将尽可能快地进行缩放。