cameraParameters

Объект для хранения параметров камеры

Описание

cameraParameters объектно-ориентированная память внутренний параметр, значение внешних параметров и параметры искажения объектива камеры.

Создание

Можно создать cameraParameters объект с помощью cameraParameters функция описана здесь. Можно также создать cameraParameters объект при помощи estimateCameraParameters с M-by-2-by-numImages массив входа отображают точки. M является количеством координат keypoint в каждом шаблоне.

Описание

cameraParams = cameraParameters создает cameraParameters объект, который содержит внутренний параметр, значение внешних параметров и параметры искажения объектива камеры.

пример

cameraParams = cameraParameters(Name,Value) свойства наборов cameraParameters объект при помощи одного или нескольких Name,Value парные аргументы. Незаданные свойства используют значения по умолчанию.

cameraParams = cameraParameters(paramStruct) создает идентичный cameraParameters объект от существующего cameraParameters объект параметрами, сохраненными в paramStruct.

Входные параметры

развернуть все

Параметры стерео, заданные как struct параметров стерео. Получить paramStruct от существующего cameraParameters объект, используйте toStruct функция.

Свойства

развернуть все

Внутренние параметры камеры:

Матрица проекции, заданная как 3х3 единичная матрица. Объект использует следующий формат в матричном формате:

[fx00sfy0cxcy1]

Координаты [cx cy] представляют оптический центр (основная точка) в пикселях. Когда x и ось y точно перпендикулярны, скошенный параметр, s, равняется 0.

fx = F *sx
fy = F *sy
F, фокусное расстояние в мировых единицах измерения, обычно выраженных в миллиметрах.
[s x, s y] является количеством пикселей на мировую единицу измерения в x и направлении y соответственно.
fx и fy выражаются в пикселях.

Это свойство доступно только для чтения.

Объект внутренних параметров камеры, утвержденный как cameraIntrinsics объект. Объект содержит информацию о калибровочных параметрах внутреннего параметра камеры, включая искажение объектива.

Зависимость

Необходимо обеспечить размер изображения (использующий ImageSize свойство) для Intrinsics свойство быть непустым. Внутренние параметры для параметров камеры зависят от размера изображения.

Размер изображения, заданный как двухэлементный вектор [mrows, ncols].

Искажение объектива фотокамеры:

Радиальные коэффициенты искажения, заданные или как 2D или как трехэлементный вектор. Когда вы задаете двухэлементный вектор, объект устанавливает третий элемент на 0. Радиальное искажение происходит, когда световые лучи изгибаются более близкий ребра линзы, чем они делают в ее оптическом центре. Чем меньший линза, тем больше искажение. Объект параметров камеры вычисляет радиальное искаженное местоположение точки. Можно обозначить искаженные точки как (искаженный x, искаженный y), можно следующим образом:

x, искаженный = x (1 + k 1*r2 + k 2*r4 + k 3*r6)

y, искаженный = y (1 + k 1*r2 + k 2*r4 + k 3*r6)

x, y = неискаженные пиксельные местоположения
k 1, k 2, и k 3 = радиальные коэффициенты искажения линзы
r 2 = x 2 + y 2. Обычно
, два коэффициента достаточны. Для серьезного искажения можно включать k 3. Неискаженные пиксельные местоположения появляются в нормированных координатах изображений с источником в оптическом центре. Координаты выражаются в мировых единицах измерения.

Тангенциальные коэффициенты искажения, заданные как двухэлементный вектор. Тангенциальное искажение происходит, когда линза и плоскость изображения не параллельны. Объект параметров камеры вычисляет тангенциальное искаженное местоположение точки. Можно обозначить искаженные точки как (искаженный x, искаженный y). Неискаженные пиксельные местоположения появляются в нормированных координатах изображений с источником в оптическом центре. Координаты выражаются в мировых единицах измерения.

Тангенциальное искажение происходит, когда линза и плоскость изображения не параллельны. Тангенциальные коэффициенты искажения моделируют этот тип искажения.

Искаженные точки обозначаются как (искаженный x, искаженный y):

x, искаженный = x + [2 * p 1 * x * y + p 2 * (r 2 + 2 * x 2)]

y, искаженный = y + [p 1 * (r 2 + 2 *y 2) + 2 * p 2 * x * y]

  • x, y Неискаженные пиксельные местоположения. x и y находятся в нормированных координатах изображений. Нормированные координаты изображений вычисляются от пиксельных координат путем перевода в оптический центр и деления на фокусное расстояние в пикселях. Таким образом x и y являются безразмерными.

  • p 1 и p 2 — Тангенциальные коэффициенты искажения линзы.

  • r2 : x 2 + y 2

Внешние параметры камеры:

3-D матрица вращения, заданная как 3 3 P, с количеством P изображений шаблона. Каждая 3х3 матрица представляет то же 3-D вращение как соответствующий вектор.

Следующее уравнение обеспечивает преобразование, которое связывает мировую координату в системе координат шахматной доски [X Y Z] и соответствующая точка изображений [x y]:

s[xy1]=[XYZ1][Rt]K

R является 3-D матрицей вращения.
t является вектором сдвига.
K является IntrinsicMatrix.
s является скаляром.
Это уравнение не принимает искажение во внимание. undistortImage функция удаляет искажение.

3-D векторы вращения, заданные как P-by-3 матрица, содержащая векторы вращения P. Каждый вектор описывает 3-D вращение плоскости изображения камеры относительно соответствующего калибровочного шаблона. Вектор задает 3-D ось, о которой вращается камера, где величина является углом поворота в радианах. RotationMatrices свойство предоставляет соответствующие 3-D матрицы вращения.

Переводы камеры, заданные как P-by-3 матрица. Эта матрица содержит векторы сдвига для изображений P. Векторы содержат калибровочный шаблон, который оценивает калибровочные параметры. Каждая строка матрицы содержит вектор, который описывает перевод камеры относительно соответствующего шаблона, выраженного в мировых единицах измерения.

Следующее уравнение обеспечивает преобразование, которое связывает мировую координату в системе координат шахматной доски [X Y Z] и соответствующая точка изображений [x y]:

s[xy1]=[XYZ1][Rt]K

R является 3-D матрицей вращения.
t является вектором сдвига.
K является IntrinsicMatrix.
s является скаляром.
Это уравнение не принимает искажение во внимание. undistortImage функция удаляет искажение.

Чтобы гарантировать, что количество векторов вращения равняется количеству векторов сдвига, устанавливает RotationVectors и TranslationVectors свойства в конструкторе. Установка только одного свойства, но не других результатов по ошибке.

Предполагаемая точность параметра камеры:

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

Предполагаемая точность параметров камеры, заданная как M-by-2-by-P массив [x y] координаты. [x y] координаты представляют перевод в x и y между повторно спроектированными ключевыми пунктами шаблона и обнаруженными ключевыми пунктами шаблона. Значения этого свойства представляют точность предполагаемых параметров камеры. P является количеством изображений шаблона, которое оценивает параметры камеры. M является количеством keypoints в каждом изображении.

Мировые точки повторно спроектированы на калибровочные изображения, заданные как M-by-2-by-P массив [x y] координаты. P является количеством изображений шаблона, и M является количеством keypoints в каждом изображении.

Настройки для оценки параметра камеры:

Количество калибровочных шаблонов, которое оценивает значения внешних параметров камеры, заданные как целое число. Количество калибровочных шаблонов равняется количеству векторов перевода и вращения.

Мировые координаты ключевых пунктов на калибровочном шаблоне, заданном как M-by-2 массив. M представляет количество ключевых пунктов в шаблоне.

Мир указывает модули, заданные как скаляр строки или вектор символов. Значение описывает единицы измерения.

Оцените скошенный флаг, заданный как логический скаляр. Когда вы устанавливаете логическое на true, объект оценивает скос осей изображений. Когда вы устанавливаете логическое на false, оси изображений точно перпендикулярны.

Количество радиальных коэффициентов искажения, заданных как номер '2'или '3'.

Оцените тангенциальный флаг искажения, заданный как логический скалярный true или false. Когда вы устанавливаете логическое на true, объект оценивает тангенциальное искажение. Когда вы устанавливаете логическое на false, тангенциальное искажение незначительно.

Функции объекта

pointsToWorldОпределите мировые координаты точек изображений
toStructПреобразуйте объект параметров камеры в struct
worldToImageМир проекта указывает в изображение

Примеры

свернуть все

Используйте функции калибровки фотоаппарата, чтобы удалить искажение из изображения. Этот пример создает vision.cameraParameters возразите вручную, но на практике, вы использовали бы estimateCameraParameters или приложение Camera Calibrator, чтобы вывести объект.

Создайте vision.cameraParameters возразите вручную.

IntrinsicMatrix = [715.2699 0 0; 0 711.5281 0; 565.6995 355.3466 1];
radialDistortion = [-0.3361 0.0921]; 
cameraParams = cameraParameters('IntrinsicMatrix',IntrinsicMatrix,'RadialDistortion',radialDistortion); 

Удалите искажение из изображений.

I = imread(fullfile(matlabroot,'toolbox','vision','visiondata','calibration','mono','image01.jpg'));
J = undistortImage(I,cameraParams);

Отобразите оригинал и неискаженные изображения.

figure; imshowpair(imresize(I,0.5),imresize(J,0.5),'montage');
title('Original Image (left) vs. Corrected Image (right)');

Ссылки

[1] Чжан, Z. “Гибкий новый техник для калибровки фотоаппарата”. Транзакции IEEE согласно Анализу Шаблона и Искусственному интеллекту, Изданию 22, № 11, стр 1330–1334, 2000.

[2] Heikkila, J, и О. Сильвен. “Процедура калибровки фотоаппарата с четырьмя шагами с неявной коррекцией изображений”, международная конференция IEEE по вопросам компьютерного зрения и распознавания образов, 1997.

Расширенные возможности

Введенный в R2014a