Документация
ОС Аврора 5.1.0

Класс Aurora::StreamCamera::Camera

Камера. Подробнее…

Подключение: #include <streamcamera.h>

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

~Camera() = default
bool captureStarted() const
bool getInfo(CameraInfo & info)
std::string getParameter(CameraParameter param)
std::string getParameterRange(CameraParameter param)
std::vector< PixelFormat > getSupportedPixelFormats()
void setListener(CameraListener * listener)
bool setParameter(CameraParameter param, const std::string & value)
bool startCapture(const CameraCapability& cap,PixelFormat format)
bool stopCapture()

Защищенные данные

CameraListener* m_cameraListener

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

Камера.

Деструктор

~Camera() = default

Описание методов

bool captureStarted() const

Проверяет, работает ли камера.

Возвращает

True, если камера работает, иначе false.

bool getInfo(CameraInfo & info)

Получить информацию о камере.

Аргументы

  • [out] info — ссылка на структуру CameraInfo для вывода.

Возвращает

True, если информация о камере была успешно прочитана.

std::string getParameter(CameraParameter param)

Возвращает текущее значение параметра.

Аргументы

  • [in] param — индекс параметра.

Возвращает

Синтаксис возвращаемого значения для getParameter():

  • "v";
  • "(x,y,w,h)" для прямоугольника;
  • пустая строка, если возникает ошибка.

std::string getParameterRange(CameraParameter param)

Возвращает возможные значения параметра.

Аргументы

  • [in] param — индекс параметра.

Возвращает

Синтаксис возвращаемого значения для getParameterRange():

  • "v1,v2,v3" для возможного набора значений, например "1,2" или "false,true".

Пример на C++20 анализа дискретного диапазона гипотетического DiscreteInt:

#include <string>
#include <vector>
#include <iostream>

std::vector<std::string> split(std::string in)
{
    std::vector<std::string> tokens;

    if (in.length() == 0)
        return {};

    std::size_t start = 0, end = 0;
    for (auto v : in) {
        if (v == ',') {
            tokens.push_back(in.substr(start, end - start));
            start = end + 1;
        }
        end++;
    }
    if (start != end)
        tokens.push_back(in.substr(start, end - start));

    return tokens;
}

std::vector<int> convert(std::vector<std::string> in)
{
    std::vector<int> result;
    for (auto v : in)
        result.push_back(std::stoi(v));

    return result;
}

...

std::string range = camera.getParameterRange(CameraParameter::DiscreteInt);
std::vector<int> rangeInt = convert(split(range));
  • "v1-v10" для непрерывного значения, например "1-10" или "0,0-1,0" для значений с плавающей точкой.

Пример парсинга такого диапазона для гипотетического FloatValue:

float minValue, maxValue;
std::string range = camera->getParameterRange(CameraParameter::FloatValue);
bool success = sscanf(range.c_str(), "%f-%f, &minV, &maxV) == 2;
  • "-" для значения только для чтения;
  • "x" для прямоугольника (значение "(x,y,w,h)");
  • пустая строка, если возникает ошибка.

std::vector< PixelFormat > getSupportedPixelFormats()

Список поддерживаемых форматов пикселей.

Возвращает

Список поддерживаемых форматов пикселей или пустой список в случае возникновения ошибки.

void setListener(CameraListener * listener)

Установить обратные вызовы.

Аргументы

  • [in] listener — объект с обратными вызовами.

bool setParameter(CameraParameter param, const std::string & value)

Устанавливает значение параметра.

Аргументы

  • [in] param — индекс параметра.
  • [in] value:
    • "v" для дискретного или непрерывного значения;
    • "(x,y,w,h)" для прямоугольника.

Возвращает

True означает, что значение принято.

bool startCapture(const CameraCapability & cap, PixelFormat format)

Начать захват.

Аргументы

  • [in] cap — выходные параметры видео.
  • [in] format — желаемый формат пикселей для графических буферов.

Возвращает

True, если камера успешно запущена, иначе false.

bool stopCapture()

Остановить захват.

Возвращает

True, если камера уже остановлена или остановлена успешно, в противном случае — false.

Поля

CameraListener * m_cameraListener

Используется в setListener().

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.