QML类型说明-Camera的相关使用

本文介绍如何使用Qt多媒体5.0模块中的CameraFocus组件来控制摄像设备的对焦方式,包括手动对焦、自动对焦及连续自动对焦等模式,并通过示例代码展示如何设置对焦点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CameraFocus

ImportStatement:   import QtMultimedia 5.0

Properties

customFocusPoint: point

focusMode :enumeration

focusPointMode: enumeration

focusZones :list<focusZone>

Methods

boolisFocusModeSupported(mode)

boolisFocusPointModeSupported(mode)

DetailedDescription

CameraFocus是QtMultimedia 5.0模块的一部分。

这个组件允许我们设置人工还是自动对焦。包括选择自动对焦时相机帧的任何部分的信息。它是Camera的一部分,使用Camera的focus属性访问,它不能直接被使用。

importQtQuick 2.0

importQtMultimedia 5.0

Item {

    width: 640

    height: 360

    Camera {

        id: camera

        focus {

            focusMode: Camera.FocusMacro

            focusPointMode:Camera.FocusPointCustom

            customFocusPoint: Qt.point(0.2,0.2) // Focus relative to top-left corner

        }

    }

    VideoOutput {

        source: camera

       anchors.fill: parent

    }

}

PropertyDocumentation

customFocusPoint: point

指定焦点的中心,以帧的左上角顶点为(0,0),帧的中心为(0.5,0.5)的焦点的坐标点。这个点只用在FocusPointCustom的集中模式。

focusMode :enumeration

当前相机的焦点模式,它是下面的值之一:

描述

FocusManual

手动或定焦模式。.

FocusHyperfocal

关注超过焦距的距离,最大景深被激活,所有目标的距离在这个距离的一半到无限远之间将被设置。

FocusInfinity

焦点严格到无穷大。

FocusAuto

一次性自动对焦模式。

FocusContinuous

连续自动对焦模式。

FocusMacro

一次性和接近相机的物体对焦的模式。.

联合多个模式是可能的,例如Camera.FocusMacro + Camera.FocusContinuous。在自动对焦模式,focusPointMode和focusZones属性控制自动对焦怎样执行。

focusPointMode: enumeration

当前相机的焦点模式。它被用于自动对焦模式,决定相机聚焦在什么上。如果当前的焦点模式是Camera.FocusPointCustom,customFocusPoint属性允许我们指定对焦到当前帧的那一部分。这个属性的值是下列之一:

描述

FocusPointAuto

自动选择一个或多个焦点。

FocusPointCenter

帧中心为焦点

FocusPointFaceDetection

聚焦在帧上.

FocusPointCustom

聚焦在customFocusPoint  指定的点。

focusZones :list<focusZone>

当前相机焦点区域的列表。每个包含的区域指定同一坐标作为customFocusPoint。区域状态是下面的一个值之一。

描述

Camera.FocusAreaUnused

焦点区域未用在自动对焦上.

Camera.FocusAreaSelected

焦点区域用于自动对焦,但不是焦点

Camera.FocusAreaFocused

焦点区域用于自动对焦,是焦点

VideoOutput{

    id: viewfinder

    source: camera

 

    //display focus areas on camera viewfinder:

    Repeater {

          model: camera.focus.focusZones

          Rectangle {

              border {

                  width: 2

                  color: status ==Camera.FocusAreaFocused ? "green" : "white"

              }

              color: "transparent"

              // Map from the relative,normalized frame coordinates

              property variant mappedRect:viewfinder.mapNormalizedRectToItem(area);

              x: mappedRect.x

              y: mappedRect.y

              width: mappedRect.width

              height: mappedRect.height

          }

    }

}

MethodDocumentation

boolisFocusModeSupported(mode) const

如果提供的模式支持集中模式,则返回真,否则返回假。

boolisFocusPointModeSupported(mode) const

如果提供的模式支持焦点模式,则返回真,否则返回假。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值