PySide6.QtMultimedia.QCamera¶
- class QCamera¶
-
概要¶
属性¶
exposureCompensationᅟ
- 曝光补偿,单位为EVexposureModeᅟ
- 使用的曝光模式exposureTimeᅟ
- 相机的曝光时间,单位为秒flashModeᅟ
- 使用的闪光模式flashReadyᅟ
- 表示闪光灯是否已充电并准备就绪focusModeᅟ
- 当前相机的对焦模式isoSensitivityᅟ
- 传感器ISO感光度manualIsoSensitivityᅟ
- 描述手动设置的ISO感光度torchModeᅟ
- 正在使用的Torch模式zoomFactorᅟ
- 当前缩放比例
方法¶
def
__init__()
def
cameraDevice()
def
cameraFormat()
def
captureSession()
def
error()
def
errorString()
def
exposureMode()
def
exposureTime()
def
flashMode()
def
focusDistance()
def
focusMode()
def
focusPoint()
def
isActive()
def
isAvailable()
def
isFlashReady()
def
isoSensitivity()
def
setFocusMode()
def
setZoomFactor()
def
torchMode()
def
zoomFactor()
插槽¶
def
setActive()
def
setFlashMode()
def
setTorchMode()
def
start()
def
stop()
def
zoomTo()
信号¶
def
activeChanged()
def
errorChanged()
def
errorOccurred()
def
flashReady()
def
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。
查看相机概览以获取更多信息。
- 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实现的编解码器。
另请参阅
- Access functions:
- property colorTemperatureᅟ: int¶
如果当前的白平衡模式是
WhiteBalanceManual
,则返回当前的色温。对于其他模式,返回值未定义。- Access functions:
此属性表示自定义焦点的位置,以相对帧坐标表示: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
锁定焦点。另请参阅
- Access functions:
返回自动对焦系统当前用于对焦的点。
- 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¶
此属性保存当前的缩放因子。
获取或设置当前的缩放因子。值将被限制在
minimumZoomFactor
和maximumZoomFactor
之间。- Access functions:
使用
parent
构造一个QCamera
。如果系统中有多个摄像头可用,则选择默认摄像头。
构造一个
QCamera
,它使用位于指定position
的硬件摄像头。例如,在手机上,它可以用来轻松选择前置和后置摄像头。
如果在指定的
position
没有可用的摄像头,或者如果position
是UnspecifiedPosition
,则使用默认摄像头。- __init__(cameraDevice[, parent=None])
- Parameters:
cameraDevice –
QCameraDevice
parent –
QObject
从相机描述
cameraDevice
和parent
构造一个QCamera
。- activeChanged(arg__1)¶
- Parameters:
arg__1 – 布尔值
属性
activeᅟ
的通知信号。- brightnessChanged()¶
- cameraDevice()¶
- Return type:
另请参阅
属性
cameraDeviceᅟ
的获取器。- cameraDeviceChanged()¶
属性
cameraDeviceᅟ
的通知信号。- cameraFormat()¶
- Return type:
另请参阅
属性
cameraFormatᅟ
的获取器。- cameraFormatChanged()¶
属性
cameraFormatᅟ
的通知信号。- captureSession()¶
- Return type:
返回此相机连接的捕获会话,如果相机未连接到捕获会话,则返回nullptr。
使用
setCamera()
将相机连接到会话。- colorTemperature()¶
- Return type:
整数
属性
colorTemperatureᅟ
的获取器。- colorTemperatureChanged()¶
属性
colorTemperatureᅟ
的通知信号。- contrastChanged()¶
属性
customFocusPointᅟ
的获取器。- customFocusPointChanged()¶
属性
customFocusPointᅟ
的通知信号。属性
errorᅟ
的获取器。- errorChanged()¶
属性
errorᅟ
的通知信号。当错误状态变为
error
时,会发出此信号。错误的描述以errorString
的形式提供。- errorString()¶
- Return type:
字符串
属性
errorStringᅟ
的获取器。- exposureCompensation()¶
- Return type:
浮点数
属性
exposureCompensationᅟ
的获取器。- exposureCompensationChanged(value)¶
- Parameters:
value – 浮点数
当曝光补偿更改为
value
时发出的信号。属性
exposureCompensationᅟ
的通知信号。- exposureMode()¶
- Return type:
另请参阅
属性
exposureModeᅟ
的获取器。- exposureModeChanged()¶
属性
exposureModeᅟ
的通知信号。- exposureTime()¶
- Return type:
浮点数
返回当前的曝光时间,单位为秒。
属性
exposureTimeᅟ
的获取器。- exposureTimeChanged(speed)¶
- Parameters:
速度 – float
表示相机的曝光
速度
已更改。属性
exposureTimeᅟ
的通知信号。- flashMode()¶
- Return type:
另请参阅
属性
flashModeᅟ
的获取器。- flashModeChanged()¶
属性
flashModeᅟ
的通知信号。- flashReady(ready)¶
- Parameters:
ready – 布尔值
信号灯
ready
状态已更改。属性
flashReadyᅟ
的通知信号。- focusDistance()¶
- Return type:
浮点数
另请参阅
属性
focusDistanceᅟ
的获取器。- focusDistanceChanged(arg__1)¶
- Parameters:
arg__1 – 浮点数
属性
focusDistanceᅟ
的通知信号。- focusMode()¶
- Return type:
另请参阅
属性
focusModeᅟ
的获取器。- focusModeChanged()¶
当
focusMode
改变时发出信号。属性
focusModeᅟ
的通知信号。属性
focusPointᅟ
的获取器。- focusPointChanged()¶
属性
focusPointᅟ
的通知信号。- hueChanged()¶
- isActive()¶
- Return type:
布尔
如果相机当前处于活动状态,则返回 true。
属性
activeᅟ
的获取器。- isAvailable()¶
- Return type:
布尔
如果相机可以使用,则返回true。
- isExposureModeSupported(mode)¶
- Parameters:
mode –
ExposureMode
- Return type:
布尔
如果支持曝光
mode
,则返回true。如果支持闪光灯
模式
,则返回true。- isFlashReady()¶
- Return type:
布尔
如果闪光灯已充电,则返回 true。
属性
flashReadyᅟ
的获取器。如果相机支持焦点
mode
,则返回true。如果报告支持
FocusModeManual
,则意味着也支持功能FocusDistance
。如果支持
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 – 布尔值
如果
active
为true
,则打开相机;如果为false
,则关闭相机。另请参阅
属性
activeᅟ
的设置器。- setAutoExposureTime()¶
使用自动计算的曝光时间
- setAutoIsoSensitivity()¶
开启自动灵敏度
- setCameraDevice(cameraDevice)¶
- Parameters:
cameraDevice –
QCameraDevice
将相机对象连接到由
cameraDevice
描述的物理相机设备。使用默认构造的QCameraDevice
对象作为cameraDevice
将把相机连接到系统的默认相机设备。当切换摄像头设备时,
QCamera
的功能会更新。此外,QCamera
的控制属性(如focusMode
、flashMode
、focusDistance
、zoomFactor
)会按如下方式更新:如果新设备支持某个属性,则该属性值将应用于相机设备。
如果支持某个属性但其有效值范围已更改,则该属性将被限制在新范围内并应用于相机设备。
如果新的相机设备不支持某个属性,该属性值将重置为默认值,并且不会对相机设备进行任何更改。
另请参阅
属性
cameraDeviceᅟ
的设置器。- setCameraFormat(format)¶
- Parameters:
format –
QCameraFormat
告诉相机使用由
format
描述的格式。这可以用于定义用于录制和图像捕获的特定分辨率和帧率。注意
在Android目标设备上使用FFMPEG后端时,如果您请求YUV420P格式,您将收到完全平面的4:2:0 YUV420P或半平面的NV12/NV21。这取决于设备OEM实现的编解码器。
另请参阅
属性
cameraFormatᅟ
的设置器。- setColorTemperature(colorTemperature)¶
- Parameters:
colorTemperature – int
将手动白平衡设置为
colorTemperature
。当whiteBalanceMode()
设置为WhiteBalanceManual
时使用此功能。单位为开尔文。设置色温只有在支持
WhiteBalanceManual
时才会有效。在这种情况下,设置大于0的色温将自动将白平衡模式设置为WhiteBalanceManual
。将色温设置为0将重置白平衡模式为WhiteBalanceAuto
。另请参阅
属性
colorTemperatureᅟ
的设置器。属性
customFocusPointᅟ
的设置器。- setExposureCompensation(ev)¶
- Parameters:
ev – 浮点数
属性
exposureCompensationᅟ
的设置器。- setExposureMode(mode)¶
- Parameters:
mode –
ExposureMode
另请参阅
属性
exposureModeᅟ
的设置器。属性
flashModeᅟ
的设置器。- setFocusDistance(d)¶
- Parameters:
d – 浮点数
另请参阅
属性
focusDistanceᅟ
的设置器。属性
focusModeᅟ
的设置器。- setManualExposureTime(seconds)¶
- Parameters:
seconds – 浮点数
另请参阅
属性
manualExposureTimeᅟ
的设置器。- setManualIsoSensitivity(iso)¶
- Parameters:
iso – 整数
属性
manualIsoSensitivityᅟ
的设置器。属性
torchModeᅟ
的设置器。- setWhiteBalanceMode(mode)¶
- Parameters:
模式 –
WhiteBalanceMode
将白平衡设置为
mode
。另请参阅
属性
whiteBalanceModeᅟ
的设置器。- setZoomFactor(factor)¶
- Parameters:
factor – 浮点数
以每秒1个因子的速度缩放到缩放因子
factor
。另请参阅
属性
zoomFactorᅟ
的设置器。- start()¶
启动相机。
与
setActive
(true)相同。如果由于某些原因无法启动相机,则会发出
errorOccurred()
信号。- stop()¶
停止相机。与
setActive
(false) 相同。属性
supportedFeaturesᅟ
的获取器。- supportedFeaturesChanged()¶
属性
supportedFeaturesᅟ
的通知信号。- torchMode()¶
- Return type:
另请参阅
属性
torchModeᅟ
的获取器。- torchModeChanged()¶
属性
torchModeᅟ
的通知信号。- whiteBalanceMode()¶
- Return type:
获取属性
whiteBalanceModeᅟ
的Getter。- whiteBalanceModeChanged()¶
属性
whiteBalanceModeᅟ
的通知信号。- zoomFactor()¶
- Return type:
浮点数
另请参阅
属性
zoomFactorᅟ
的获取器。- zoomFactorChanged(arg__1)¶
- Parameters:
arg__1 – 浮点数
属性
zoomFactorᅟ
的通知信号。- zoomTo(zoom, rate)¶
- Parameters:
zoom – 浮点数
rate – 浮点数
使用
rate
缩放到缩放因子factor
。rate
以每秒二的幂次方指定。当速率为1时,从缩放因子1到4需要2秒。注意
并非所有相机都支持使用特定速率。如果不支持,缩放将以尽可能快的速度进行。