Spec-Zone.ru › Qt 5.12

Класс QCameraFocus

Класс QCameraFocus предоставляет интерфейс для управления настройками камеры, связанными с фокусировкой и зумом. Подробнее...

Заголовок: #include <QCameraFocus>
qmake: QT += multimedia
Наследует: QObject
  • Список всех членов, включая наследуемые
  • Устаревшие члены

Типы публичного доступа

Перечисление FocusMode { ManualFocus, HyperfocalFocus, InfinityFocus, AutoFocus, ContinuousFocus, MacroFocus }
Флаги FocusModes
Перечисление FocusPointMode { FocusPointAuto, FocusPointCenter, FocusPointFaceDetection, FocusPointCustom }

Свойства

  • customFocusPoint : QPointF
  • digitalZoom : const qreal
  • focusMode : FocusModes
  • focusPointMode : FocusPointMode
  • focusZones : const QCameraFocusZoneList
  • opticalZoom : const qreal
  • 1 свойство унаследовано от QObject

Публичные функции

QPointF customFocusPoint() const
qreal digitalZoom() const
QCameraFocus::FocusModes focusMode() const
QCameraFocus::FocusPointMode focusPointMode() const
QCameraFocusZoneList focusZones() const
bool isAvailable() const
bool isFocusModeSupported(QCameraFocus::FocusModes mode) const
bool isFocusPointModeSupported(QCameraFocus::FocusPointMode mode) const
qreal maximumDigitalZoom() const
qreal maximumOpticalZoom() const
qreal opticalZoom() const
void setCustomFocusPoint(const QPointF &point)
void setFocusMode(QCameraFocus::FocusModes mode)
void setFocusPointMode(QCameraFocus::FocusPointMode mode)
void zoomTo(qreal optical, qreal digital)
  • 31 публичная функция унаследована от QObject

Сигналы

void digitalZoomChanged(qreal value)
void focusZonesChanged()
void maximumDigitalZoomChanged(qreal zoom)
void maximumOpticalZoomChanged(qreal zoom)
void opticalZoomChanged(qreal value)
  • 2 сигнала унаследованы от QObject

Статические публичные члены

const QMetaObject staticMetaObject
  • 9 статических публичных членов унаследованы от QObject

Дополнительные унаследованные члены

  • 1 публичный слот унаследован от QObject
  • 9 защищенных функций унаследованы от QObject

Подробное описание

Класс QCameraFocus предоставляет интерфейс для управления настройками камеры, связанными с фокусировкой и зумом.

На оборудовании, поддерживающем эту функцию, этот класс позволяет изменять фокус или зум (оптический и цифровой). Это также включает режимы, такие как «Макро» для работы с близкими объектами (например, считывание штрих-кодов или распознавание букв) или «Навести фокус нажатием» - указание интересной области видоискателя для оборудования с целью фокусировки на ней.

QCameraFocus *focus = camera->focus();
focus->setFocusPointMode(QCameraFocus::FocusPointCustom);
focus->setCustomFocusPoint(QPointF(0.25f, 0.75f)); // A point near the bottom left, 25% away from the corner, near that shiny vase

Зум можно реализовать различными способами - обычно более дорогой, но более качественный подход - оптический зум, который позволяет использовать весь диапазон сенсора камеры для сбора пикселей изображения. Кроме того, можно использовать цифровой зум, который, как правило, просто увеличивает часть кадра сенсора и отбрасывает другие части. Если камера поддерживает оптический зум, его следует использовать в первую очередь. Метод maximumOpticalZoom() позволяет это проверить. Метод zoomTo() позволяет изменить оптический и цифровой зум одновременно.

focus->zoomTo(3.0, 4.0); // Super zoom!

Некоторые замечания по автофокусировке

Некоторое оборудование поддерживает подвижный объектив фокусировки, и обычно это оборудование также поддерживает автоматическую фокусировку с помощью некоторой эвристики. Вы можете повлиять на этот процесс с помощью настройки FocusPointMode - обычно в фокус попадает центр кадра, но некоторые устройства также поддерживают фокусировку на лицах, обнаруженных в кадре, или на конкретной точке (обычно предоставленной пользователем в сценарии «Наведение фокуса нажатием»).

Этот класс (в сочетании с QCameraFocusZone) может предоставлять информацию о том, какие части изображения сенсора камеры находятся в фокусе или используются для автофокусировки через свойство focusZones():

focus->setFocusPointMode(QCameraFocus::FocusPointAuto);
QList<QCameraFocusZone> zones = focus->focusZones();
foreach (QCameraFocusZone zone, zones) {
    if (zone.status() == QCameraFocusZone::Focused) {
        // Draw a green box at zone.area()
    } else if (zone.status() == QCameraFocusZone::Selected) {
        // This area is selected for autofocusing, but is not in focus
        // Draw a yellow box at zone.area()
    }
}

См. также QCameraFocusZone.

Документация по типам членов

перечисление QCameraFocus::FocusModeфлаги QCameraFocus::FocusModes

Постоянная Значение Описание
QCameraFocus::ManualFocus 0x1 Режим ручного или фиксированного фокуса.
QCameraFocus::HyperfocalFocus 0x02 Фокусировка на гиперфокальном расстоянии для достижения максимальной глубины резкости. Все объекты на расстоянии от половины этого расстояния до бесконечности будут приемлемо резкими.
QCameraFocus::InfinityFocus 0x04 Фокусировка строго на бесконечность.
QCameraFocus::AutoFocus 0x8 Режим однократной автофокусировки.
QCameraFocus::ContinuousFocus 0x10 Режим непрерывной автофокусировки.
QCameraFocus::MacroFocus 0x20 Однократная автофокусировка на объекты, близкие к камере.

Тип FocusModes является типом-синонимом для QFlags<FocusMode>. Он хранит результат объединения по «ИЛИ» значений FocusMode.

перечисление QCameraFocus::FocusPointMode

Константа Значение Описание
QCameraFocus::FocusPointAuto 0 Автоматически выбирает одну или несколько точек фокусировки.
QCameraFocus::FocusPointCenter 1 Фокусировка на центре кадра.
QCameraFocus::FocusPointFaceDetection 2 Фокусировка на лицах в кадре.
QCameraFocus::FocusPointCustom 3 Фокусировка на пользовательской точке, определенной свойством QCameraFocus::customFocusPoint.

Документация свойств

customFocusPoint : QPointF

Это свойство представляет положение пользовательской точки фокусировки в относительных координатах кадра: QPointF(0,0) указывает на верхний левый угол кадра, QPointF(0.5,0.5) указывает на центр кадра.

Свойство customFocusPoint используется только в режиме фокусировки FocusPointCustom.

Функции доступа:

QPointF customFocusPoint() const
void setCustomFocusPoint(const QPointF &point)

digitalZoom : const qreal

Это свойство содержит текущее значение цифрового зума.

Функции доступа:

qreal digitalZoom() const

Сигнал уведомления:

void digitalZoomChanged(qreal value)

См. также QCameraFocus::opticalZoom.

focusMode : FocusModes

Это свойство содержит текущий режим фокусировки камеры.

Это управляет способом конфигурации оптической системы камеры.

Функции доступа:

QCameraFocus::FocusModes focusMode() const
void setFocusMode(QCameraFocus::FocusModes mode)

См. также QCameraFocus::isFocusModeSupported().

focusPointMode : FocusPointMode

Это свойство содержит текущий режим выбора точки фокусировки камеры.

Если режим фокусировки камеры настроен на использование автоматического фокусирования, это свойство контролирует способ, которым камера будет выбирать области кадра для использования в автоматическом фокусировании.

Функции доступа:

QCameraFocus::FocusPointMode focusPointMode() const
void setFocusPointMode(QCameraFocus::FocusPointMode mode)

См. также QCameraFocus::isFocusPointModeSupported().

focusZones : const QCameraFocusZoneList

Возвращает список активных зон фокусировки.

Если выбран режим фокусировки QCamera::FocusPointAuto или QCamera::FocusPointFaceDetection, этот метод возвращает список зон, на которых камера фактически сфокусирована.

Система координат такая же, как для пользовательских точек фокусировки: QPointF(0,0) указывает на верхний левый угол кадра, QPointF(0.5,0.5) указывает на центр кадра.

Функции доступа:

QCameraFocusZoneList focusZones() const

Сигнал уведомления:

void focusZonesChanged()

opticalZoom : const qreal

Это свойство содержит текущее значение оптического зума.

Функции доступа:

qreal opticalZoom() const

Сигнал уведомления:

void opticalZoomChanged(qreal value)

См. также QCameraFocus::digitalZoom.

Документация функций-членов

[signal] void QCameraFocus::digitalZoomChanged(qreal value)

Сигнал, излучаемый при изменении значения цифрового зума на новое значение value.

Примечание: Сигнал уведомления для свойства digitalZoom.

[signal] void QCameraFocus::focusZonesChanged()

Этот сигнал излучается при изменении набора зон, используемых в автоматическом фокусировании.

Это может измениться, когда зона сфокусирована или теряет фокус, или были обнаружены новые зоны фокусировки.

Примечание: Сигнал уведомления для свойства focusZones.

bool QCameraFocus::isAvailable() const

Возвращает true, если параметры фокусировки поддерживаются этой камерой.

Вам может потребоваться также проверить, поддерживаются ли какие-либо конкретные функции.

bool QCameraFocus::isFocusModeSupported(QCameraFocus::FocusModes mode) const

Возвращает true, если режим фокусировки mode поддерживается камерой.

bool QCameraFocus::isFocusPointModeSupported(QCameraFocus::FocusPointMode mode) const

Возвращает true, если режим точки фокусировки mode поддерживается.

qreal QCameraFocus::maximumDigitalZoom() const

Возвращает максимальный цифровой зум.

Будет 1.0 для камер, не поддерживающих цифровой зум.

[signal] void QCameraFocus::maximumDigitalZoomChanged(qreal zoom)

Сигнал, излучаемый при изменении максимального поддерживаемого цифрового значения zoom.

Максимальное поддерживаемое значение зума может зависеть от других настроек камеры, таких как режим захвата или разрешение.

qreal QCameraFocus::maximumOpticalZoom() const

Возвращает максимальный оптический зум.

Будет 1.0 для камер, не поддерживающих оптический зум.

[signal] void QCameraFocus::maximumOpticalZoomChanged(qreal zoom)

Сигнал, излучаемый при изменении максимального поддерживаемого значения оптического зума zoom.

[signal] void QCameraFocus::opticalZoomChanged(qreal value)

Сигнал, излучаемый при изменении значения оптического зума на новое значение value.

Примечание: Сигнал уведомления для свойства opticalZoom.

void QCameraFocus::zoomTo(qreal optical, qreal digital)

Устанавливает значения оптического и цифрового зума камеры optical и digital.

Поскольку может быть физический компонент для перемещения, изменение значения зума может быть не мгновенным.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.12/qcamerafocus.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API