PySide6.QtMultimedia.QCamera

class QCamera

QCamera 类提供了系统摄像头设备的接口。更多

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

查看相机概览以获取更多信息。

class Error

此枚举保存最后一个错误代码。

常量

描述

QCamera.NoError

没有发生错误。

QCamera.CameraError

发生了一个错误。

class FocusMode

常量

描述

QCamera.FocusModeAuto

连续自动对焦模式。

QCamera.FocusModeAutoNear

对近处物体进行连续自动对焦模式。

QCamera.FocusModeAutoFar

对远处物体进行连续自动对焦模式。

QCamera.FocusModeHyperfocal

聚焦到超焦距,实现最大景深。从该距离的一半到无穷远的所有物体都将清晰可见。

QCamera.FocusModeInfinity

严格对焦到无限远。

QCamera.FocusModeManual

相机镜头焦距根据focusDistance锁定。

在版本6.1中添加。

class FlashMode

常量

描述

QCamera.FlashOff

闪光灯关闭。

QCamera.FlashOn

闪光灯已开启。

QCamera.FlashAuto

自动闪光灯。

在版本6.1中添加。

class TorchMode

常量

描述

QCamera.TorchOff

手电筒已关闭。

QCamera.TorchOn

手电筒已开启。

QCamera.TorchAuto

自动手电筒。

在版本6.1中添加。

class 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中添加。

class 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

描述相机当前是否处于活动状态。

Access functions:
property cameraDeviceᅟ: QCameraDevice

返回与此相机关联的QCameraDevice对象。

Access functions:
property cameraFormatᅟ: QCameraFormat

返回当前相机使用的相机格式。

注意

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

另请参阅

videoFormats

Access functions:
property colorTemperatureᅟ: int

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

Access functions:
property customFocusPointᅟ: QPointF

此属性表示自定义焦点的位置,以相对帧坐标表示:QPointF(0,0)指向左上帧点,QPointF(0.5,0.5)指向帧中心。

自定义焦点属性仅在FocusPointCustom焦点模式下使用。

您可以通过使用supportedFeatures()查询Feature.CustomFocusPoint标志来检查是否支持自定义焦点。

Access functions:
property errorᅟ: QCamera.Error

返回相机的错误状态。

Access functions:
property errorStringᅟ: str

返回描述相机错误状态的可读字符串。

Access functions:
property exposureCompensationᅟ: float

此属性以EV单位表示曝光补偿。

曝光补偿属性允许调整自动计算的曝光。

Access functions:
property exposureModeᅟ: QCamera.曝光模式

此属性保存正在使用的曝光模式。

Access functions:
property exposureTimeᅟ: float

此属性保存相机的曝光时间,单位为秒。

Access functions:
property flashModeᅟ: QCamera.FlashMode

此属性保存正在使用的闪光模式。

如果相机有闪光灯,则启用某种闪光模式。

Access functions:
property flashReadyᅟ: bool

此属性表示闪光灯是否已充电并准备使用。

Access functions:
property focusDistanceᅟ: float

此属性定义了相机设备在手动对焦模式下的镜头对焦距离。有效值范围从0到1,其中0是最近的对焦距离,1是最远的。最远点通常在无穷远处,但这可能不适用于所有设备。

此属性仅在focusMode设置为FocusModeManual,并且supportedFeatures包含FocusDistance标志时应用于设备。

如果您在focusMode未设置为Camera.FocusModeManual时为此属性赋值,该属性将存储该值,但在Camera.FocusModeManual激活之前不会影响设备。

在有效范围 [0, 1] 之外赋值对此属性没有影响。

如果supportedFeatures不包括FocusDistance标志,任何尝试设置此属性的操作都将被忽略。

当相机处于自动对焦模式时,此属性将不会被更新。

默认值为1。

Access functions:
property focusModeᅟ: QCamera.FocusMode

此属性保存当前的相机对焦模式。

此属性保存控制相机设备对焦模式的值。在所有自动对焦模式下,相机设备会持续保持对焦。

要检查相机设备是否支持特定的对焦模式,将相应的FocusMode值作为参数传递给isFocusModeSupported函数。如果对焦模式值不受支持,函数将返回false。将此模式分配给focusMode属性将无效。

如果您将focusMode属性设置为Camera.FocusModeManual,镜头将根据focusDistance锁定焦点。

另请参阅

isFocusModeSupported

Access functions:
property focusPointᅟ: QPointF

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

Access functions:
property isoSensitivityᅟ: int

此属性保存传感器的ISO感光度。

描述相机当前使用的ISO感光度。

Access functions:
property manualExposureTimeᅟ: float

将手动曝光时间设置为 seconds

Access functions:
property manualIsoSensitivityᅟ: int

此属性描述手动设置的ISO感光度。

将此属性设置为-1(默认值),意味着相机会自动调整ISO感光度。

Access functions:
property maximumZoomFactorᅟ: float

返回最大缩放因子。

在不支持缩放的相机上,这将是 1.0

Access functions:
property minimumZoomFactorᅟ: float

返回最小缩放因子。

这将是不支持变焦的相机上的1.0

Access functions:
property supportedFeaturesᅟ: Combination of QCamera.Feature

返回此相机支持的功能。

另请参阅

功能

Access functions:
property torchModeᅟ: QCamera.TorchMode

此属性保存正在使用的火炬模式。

手电筒是一个持续的光源。它可以在光线较弱的条件下进行视频录制时使用。启用手电筒模式通常会覆盖当前设置的任何闪光模式。

Access functions:
property whiteBalanceModeᅟ: QCamera.白平衡模式

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

Access functions:
property zoomFactorᅟ: float

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

获取或设置当前的缩放因子。值将被限制在minimumZoomFactormaximumZoomFactor之间。

Access functions:
__init__([parent=None])
Parameters:

父对象QObject

使用parent构造一个QCamera

如果系统中有多个摄像头可用,则选择默认摄像头。

__init__(position[, parent=None])
Parameters:

构造一个QCamera,它使用位于指定position的硬件摄像头。

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

如果在指定的position没有可用的摄像头,或者如果positionUnspecifiedPosition,则使用默认摄像头。

__init__(cameraDevice[, parent=None])
Parameters:

从相机描述 cameraDeviceparent 构造一个 QCamera

activeChanged(arg__1)
Parameters:

arg__1 – 布尔值

属性 activeᅟ 的通知信号。

brightnessChanged()
cameraDevice()
Return type:

QCameraDevice

另请参阅

setCameraDevice()

属性 cameraDeviceᅟ 的获取器。

cameraDeviceChanged()

属性 cameraDeviceᅟ 的通知信号。

cameraFormat()
Return type:

QCameraFormat

另请参阅

setCameraFormat()

属性 cameraFormatᅟ 的获取器。

cameraFormatChanged()

属性 cameraFormatᅟ 的通知信号。

captureSession()
Return type:

QMediaCaptureSession

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

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

colorTemperature()
Return type:

整数

另请参阅

setColorTemperature()

属性 colorTemperatureᅟ 的获取器。

colorTemperatureChanged()

属性 colorTemperatureᅟ 的通知信号。

contrastChanged()
customFocusPoint()
Return type:

QPointF

另请参阅

setCustomFocusPoint()

属性 customFocusPointᅟ 的获取器。

customFocusPointChanged()

属性 customFocusPointᅟ 的通知信号。

error()
Return type:

错误

属性 errorᅟ 的获取器。

errorChanged()

属性 errorᅟ 的通知信号。

errorOccurred(error, errorString)
Parameters:
  • 错误Error

  • errorString – str

当错误状态变为error时,会发出此信号。错误的描述以errorString的形式提供。

errorString()
Return type:

字符串

属性 errorStringᅟ 的获取器。

exposureCompensation()
Return type:

浮点数

属性 exposureCompensationᅟ 的获取器。

exposureCompensationChanged(value)
Parameters:

value – 浮点数

当曝光补偿更改为value时发出的信号。

属性 exposureCompensationᅟ 的通知信号。

exposureMode()
Return type:

ExposureMode

另请参阅

setExposureMode()

属性 exposureModeᅟ 的获取器。

exposureModeChanged()

属性 exposureModeᅟ 的通知信号。

exposureTime()
Return type:

浮点数

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

属性 exposureTimeᅟ 的获取器。

exposureTimeChanged(speed)
Parameters:

速度 – float

表示相机的曝光速度已更改。

属性 exposureTimeᅟ 的通知信号。

flashMode()
Return type:

FlashMode

另请参阅

setFlashMode()

属性 flashModeᅟ 的获取器。

flashModeChanged()

属性 flashModeᅟ 的通知信号。

flashReady(ready)
Parameters:

ready – 布尔值

信号灯 ready 状态已更改。

属性 flashReadyᅟ 的通知信号。

focusDistance()
Return type:

浮点数

另请参阅

setFocusDistance()

属性 focusDistanceᅟ 的获取器。

focusDistanceChanged(arg__1)
Parameters:

arg__1 – 浮点数

属性 focusDistanceᅟ 的通知信号。

focusMode()
Return type:

FocusMode

另请参阅

setFocusMode()

属性 focusModeᅟ 的获取器。

focusModeChanged()

focusMode改变时发出信号。

属性 focusModeᅟ 的通知信号。

focusPoint()
Return type:

QPointF

属性 focusPointᅟ 的获取器。

focusPointChanged()

属性 focusPointᅟ 的通知信号。

hueChanged()
isActive()
Return type:

布尔

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

属性 activeᅟ 的获取器。

isAvailable()
Return type:

布尔

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

isExposureModeSupported(mode)
Parameters:

modeExposureMode

Return type:

布尔

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

isFlashModeSupported(mode)
Parameters:

模式FlashMode

Return type:

布尔

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

isFlashReady()
Return type:

布尔

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

属性 flashReadyᅟ 的获取器。

isFocusModeSupported(mode)
Parameters:

modeFocusMode

Return type:

布尔

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

如果报告支持FocusModeManual,则意味着也支持功能FocusDistance

isTorchModeSupported(mode)
Parameters:

modeTorchMode

Return type:

布尔

如果支持mode模式,则返回true。

isWhiteBalanceModeSupported(mode)
Parameters:

模式WhiteBalanceMode

Return type:

布尔

如果支持白平衡mode,则返回true。

isoSensitivity()
Return type:

整数

属性 isoSensitivityᅟ 的获取器。

isoSensitivityChanged(value)
Parameters:

– int

当灵敏度更改为value时发出的信号。

属性 isoSensitivityᅟ 的通知信号。

manualExposureTime()
Return type:

浮点数

返回手动曝光时间(以秒为单位),如果相机使用自动曝光时间,则返回-1。

属性 manualExposureTimeᅟ 的获取器。

manualExposureTimeChanged(speed)
Parameters:

速度 – float

属性 manualExposureTimeᅟ 的通知信号。

manualIsoSensitivity()
Return type:

整数

属性 manualIsoSensitivityᅟ 的获取器。

manualIsoSensitivityChanged(arg__1)
Parameters:

arg__1 – 整数

属性 manualIsoSensitivityᅟ 的通知信号。

maximumExposureTime()
Return type:

浮点数

最大曝光时间(以秒为单位)。

maximumIsoSensitivity()
Return type:

整数

返回相机支持的最大ISO感光度。

maximumZoomFactor()
Return type:

浮点数

属性 maximumZoomFactorᅟ 的获取器。

maximumZoomFactorChanged(arg__1)
Parameters:

arg__1 – 浮点数

属性 maximumZoomFactorᅟ 的通知信号。

minimumExposureTime()
Return type:

浮点数

最小曝光时间(以秒为单位)。

minimumIsoSensitivity()
Return type:

整数

返回相机支持的最低ISO感光度。

minimumZoomFactor()
Return type:

浮点数

属性 minimumZoomFactorᅟ 的获取器。

minimumZoomFactorChanged(arg__1)
Parameters:

arg__1 – 浮点数

属性 minimumZoomFactorᅟ 的通知信号。

saturationChanged()
setActive(active)
Parameters:

active – 布尔值

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

另请参阅

isActive()

属性 activeᅟ 的设置器。

setAutoExposureTime()

使用自动计算的曝光时间

setAutoIsoSensitivity()

开启自动灵敏度

setCameraDevice(cameraDevice)
Parameters:

cameraDeviceQCameraDevice

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

当切换摄像头设备时,QCamera 的功能会更新。此外,QCamera 的控制属性(如 focusModeflashModefocusDistancezoomFactor)会按如下方式更新:

  • 如果新设备支持某个属性,则该属性值将应用于相机设备。

  • 如果支持某个属性但其有效值范围已更改,则该属性将被限制在新范围内并应用于相机设备。

  • 如果新的相机设备不支持某个属性,该属性值将重置为默认值,并且不会对相机设备进行任何更改。

另请参阅

cameraDevice()

属性 cameraDeviceᅟ 的设置器。

setCameraFormat(format)
Parameters:

formatQCameraFormat

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

注意

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

另请参阅

cameraFormat()

属性 cameraFormatᅟ 的设置器。

setColorTemperature(colorTemperature)
Parameters:

colorTemperature – int

将手动白平衡设置为colorTemperature。当whiteBalanceMode()设置为WhiteBalanceManual时使用此功能。单位为开尔文。

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

另请参阅

colorTemperature()

属性 colorTemperatureᅟ 的设置器。

setCustomFocusPoint(point)
Parameters:

QPointF

另请参阅

customFocusPoint()

属性 customFocusPointᅟ 的设置器。

setExposureCompensation(ev)
Parameters:

ev – 浮点数

另请参阅

exposureCompensation()

属性 exposureCompensationᅟ 的设置器。

setExposureMode(mode)
Parameters:

modeExposureMode

另请参阅

exposureMode()

属性 exposureModeᅟ 的设置器。

setFlashMode(mode)
Parameters:

模式FlashMode

另请参阅

flashMode()

属性 flashModeᅟ 的设置器。

setFocusDistance(d)
Parameters:

d – 浮点数

另请参阅

focusDistance()

属性 focusDistanceᅟ 的设置器。

setFocusMode(mode)
Parameters:

modeFocusMode

另请参阅

focusMode()

属性 focusModeᅟ 的设置器。

setManualExposureTime(seconds)
Parameters:

seconds – 浮点数

另请参阅

manualExposureTime()

属性 manualExposureTimeᅟ 的设置器。

setManualIsoSensitivity(iso)
Parameters:

iso – 整数

另请参阅

manualIsoSensitivity()

属性 manualIsoSensitivityᅟ 的设置器。

setTorchMode(mode)
Parameters:

modeTorchMode

另请参阅

torchMode()

属性 torchModeᅟ 的设置器。

setWhiteBalanceMode(mode)
Parameters:

模式WhiteBalanceMode

将白平衡设置为 mode

另请参阅

whiteBalanceMode()

属性 whiteBalanceModeᅟ 的设置器。

setZoomFactor(factor)
Parameters:

factor – 浮点数

以每秒1个因子的速度缩放到缩放因子 factor

另请参阅

zoomFactor()

属性 zoomFactorᅟ 的设置器。

start()

启动相机。

setActive (true)相同。

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

stop()

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

supportedFeatures()
Return type:

Feature的组合

属性 supportedFeaturesᅟ 的获取器。

supportedFeaturesChanged()

属性 supportedFeaturesᅟ 的通知信号。

torchMode()
Return type:

TorchMode

另请参阅

setTorchMode()

属性 torchModeᅟ 的获取器。

torchModeChanged()

属性 torchModeᅟ 的通知信号。

whiteBalanceMode()
Return type:

WhiteBalanceMode

另请参阅

setWhiteBalanceMode()

获取属性 whiteBalanceModeᅟ 的Getter。

whiteBalanceModeChanged()

属性 whiteBalanceModeᅟ 的通知信号。

zoomFactor()
Return type:

浮点数

另请参阅

setZoomFactor()

属性 zoomFactorᅟ 的获取器。

zoomFactorChanged(arg__1)
Parameters:

arg__1 – 浮点数

属性 zoomFactorᅟ 的通知信号。

zoomTo(zoom, rate)
Parameters:
  • zoom – 浮点数

  • rate – 浮点数

使用 rate 缩放到缩放因子 factor

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

注意

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