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, тангенциальное искажение незначительно.

Примеры

свернуть все

Используйте функции калибровки фотоаппарата, чтобы удалить искажение из изображения. Этот пример создает 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