cameraParameters

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

Описание

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

Создание

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

Синтаксис

cameraParams = cameraParameters
cameraParams = cameraParameters(Name,Value)
cameraParams = cameraParameters(paramStruct)

Описание

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 выражаются в пикселях.

Оптический центр, заданный как вектор с 2 элементами [cx, cy] в пикселях. Вектор содержит координаты оптического центра камеры.

Фокусное расстояние в x и y, заданном как вектор с 2 элементами [fx, fy].

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

Фокусное расстояние F влияет на угол представления и таким образом влияет на область сцены, которая кажется фокусируемой в изображении. Для фиксированного подчиненного расстояния:

  • Короткое фокусное расстояние предлагает широкий угол представления, позволяющего получать большую площадь сцены под особым вниманием. Это подчеркивает и предмет и фон сцены.

  • Долгое фокусное расстояние предлагает узкий угол представления, таким образом уменьшая область сцены под особым вниманием. Это подчеркивает больше на предмете и ограничивает сумму фона от того, чтобы быть полученным.

Скос осей камеры, заданный как скаляр. Если x и оси y точно перпендикулярны, то установленный скос в 0.

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

Радиальные коэффициенты искажения, заданные или как 2-или как вектор с 3 элементами. Когда вы задаете вектор с 2 элементами, объект устанавливает третий элемент на 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. Неискаженные пиксельные местоположения появляются в нормированных координатах изображений с источником в оптическом центре. Координаты выражаются в мировых модулях.

Тангенциальные коэффициенты искажения, заданные как вектор с 2 элементами. Тангенциальное искажение происходит, когда линза и плоскость изображения не параллельны. Объект параметров камеры вычисляет тангенциальное искаженное местоположение точки. Можно обозначить искаженные точки как (искаженный 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 векторы вращения, заданные как M-by-3 матрица, содержащая векторы вращения M. Каждый вектор описывает 3-D вращение плоскости изображения камеры относительно соответствующего калибровочного шаблона. Вектор задает 3-D ось, о которой вращается камера, где значение является углом поворота в радианах. Соответствующие 3-D матрицы вращения даны свойством RotationMatrices

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

Следующее уравнение обеспечивает преобразование, которое связывает мировую координату в кадре шахматной доски [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 в каждом изображении.

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

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

Мировые координаты ключевых пунктов на калибровочном шаблоне, заданном как 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