3DiVi Face SDK  3.21.0
 Указатель Классы Пространства имен Файлы Функции Переменные Определения типов Перечисления Элементы перечислений Свойства Группы
Класс pbio::CameraCalibrator

Интерфейсный объект для калибровки камеры и коррекции дисторсии. Подробнее...

#include <CameraCalibrator.h>

Классы

struct  CalibrationSettings
 Настройки калибровки. Подробнее...
 

Открытые типы

typedef LightSmartPtr
< CameraCalibrator >::tPtr 
Ptr
 Псевдоним для типа умного указателя на CameraCalibrator.
 

Открытые члены

void initCalibration (const CalibrationSettings settings)
 Инициализация процесса калибровки. Ранее принятые шаблоны будут удалены. Подробнее...
 
void addImage (const RawImage image, bool *pattern_found, bool *pattern_accepted, std::vector< Point > *pattern_points)
 Поиск калибровочного шаблона на изображении и его сохранение. Подробнее...
 
float getPatternSpaceCoverProgress () const
 Оценка покрытия пространства поз калибровочного шаблона для более точной калибровки. Подробнее...
 
std::vector< PointgetTip ()
 Получить подсказку о требуемой позиции калибровочного шаблона на изображении для лучшего покрытия. Подробнее...
 
bool calibrate (const int max_used_patterns_count, float *reprojection_error)
 Калибровка камеры. Подробнее...
 
IRawImage::Ptr undistort (const RawImage image, const float alpha) const
 Скорректировать дисторсию изображения, используя откалиброванные или загруженные параметры камеры. Подробнее...
 
void saveCameraParameters (std::ostream &binary_stream) const
 Сохранить откалиброванные параметры. Формат платформонезависимый. Подробнее...
 
void saveCameraParameters (pbio::stl_wraps::WrapOStream &binary_stream) const
 Сохранить откалиброванные параметры. Подробнее...
 
void loadCameraParameters (std::istream &binary_stream)
 Загрузить откалиброванные параметры. Формат платформонезависимый. Подробнее...
 
void loadCameraParameters (pbio::stl_wraps::WrapIStream &binary_stream)
 Загрузить откалиброванные параметры. Формат платформонезависимый. Подробнее...
 

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

Интерфейсный объект для калибровки камеры и коррекции дисторсии.

Методы

void pbio::CameraCalibrator::addImage ( const RawImage  image,
bool *  pattern_found,
bool *  pattern_accepted,
std::vector< Point > *  pattern_points 
)
inline

Поиск калибровочного шаблона на изображении и его сохранение.

Аргументы
[in]imageИзображение или кадр видео.
[out]pattern_foundШаблон был найден. Может принимать значение NULL.
[out]pattern_acceptedШаблон был принят (т.е. он достаточно отличается от уже принятых шаблонов). Может принимать значение NULL.
[out]pattern_pointsТочки найденного шаблона. Может принимать значение NULL.
bool pbio::CameraCalibrator::calibrate ( const int  max_used_patterns_count,
float *  reprojection_error 
)
inline

Калибровка камеры.

Аргументы
[in]max_used_patterns_countМаксимальное количество шаблонов для использования в расчетах. Если принято больше шаблонов, то будет выбрано подмножество, покрывающее пространство поз лучше всего. Рекомендуемое значение - 50.
[out]reprojection_errorСредняя ошибка репроекции. Нормальное значение - около 1 или меньше.
Возвращает
true, если калибровка выполенена успешно, иначе false.
float pbio::CameraCalibrator::getPatternSpaceCoverProgress ( ) const
inline

Оценка покрытия пространства поз калибровочного шаблона для более точной калибровки.

Возвращает
Вещественное число от 0 до 1.
std::vector< Point > pbio::CameraCalibrator::getTip ( )
inline

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

Возвращает
Пустой вектор, если подсказка не готова, или вектор точек шаблона-подсказки.
void pbio::CameraCalibrator::initCalibration ( const CalibrationSettings  settings)
inline

Инициализация процесса калибровки. Ранее принятые шаблоны будут удалены.

Аргументы
[in]settingsНастройки калибровки.
void pbio::CameraCalibrator::loadCameraParameters ( std::istream &  binary_stream)
inline

Загрузить откалиброванные параметры. Формат платформонезависимый.

Аргументы
[in]binary_streamОбъект потока ввода. Поток файла (std::ifstream) необходимо открывать с флагом std::ios_base::binary.
void pbio::CameraCalibrator::loadCameraParameters ( pbio::stl_wraps::WrapIStream &  binary_stream)
inline

Загрузить откалиброванные параметры. Формат платформонезависимый.

Аргументы
[in]binary_streamОбъект потока ввода. Поток файла (std::ifstream) необходимо открывать с флагом std::ios_base::binary.
void pbio::CameraCalibrator::saveCameraParameters ( std::ostream &  binary_stream) const
inline

Сохранить откалиброванные параметры. Формат платформонезависимый.

Аргументы
[out]binary_streamОбъект потока вывода. Поток файла (std::ofstream) необходимо открывать с флагом std::ios_base::binary.
void pbio::CameraCalibrator::saveCameraParameters ( pbio::stl_wraps::WrapOStream &  binary_stream) const
inline

Сохранить откалиброванные параметры.

Аргументы
[out]binary_streamОбъект потока вывода. Поток файла (std::ofstream) необходимо открывать с флагом std::ios_base::binary.
IRawImage::Ptr pbio::CameraCalibrator::undistort ( const RawImage  image,
const float  alpha 
) const
inline

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

Аргументы
[in]imageИзображение или кадр видео. Размер изображения может отличаться от размера, используемого для калибровки. Т.е. можно откалибровать камеру один раз, используя одно разрешение, и потом корректировать изображения от этой же камеры, используя любое другое разрешение.
[in]alphaВещественное число от 0 (результирующее изображение содержит только значимые пиксели (нет черных областей)) до 1 (все пиксели исходного изображения будут присутствовать в результирующем). Промежуточные значения дают промежуточный результат между этими двумя крайними случаями.
Возвращает
Откорректированное изображение того же размера и типа, что и исходное изображение.