exponenta event banner

extrinsics

Расчетное местоположение калиброванной камеры

Описание

пример

[rotationMatrix,translationVector] = extrinsics(imagePoints,worldPoints,cameraParams) возвращает матрицу поворота 3-D и вектор перемещения 3-D для преобразования точек из мировой системы координат в систему координат камеры.

Примеры

свернуть все

Создайте набор калибровочных изображений.

  images = imageDatastore(fullfile(toolboxdir('vision'),'visiondata', ...
      'calibration', 'slr'));

Определите шашечные углы на изображениях.

[imagePoints,boardSize] = detectCheckerboardPoints(images.Files);

Создайте мировые координаты шашечных углов в системе координат, ориентированной на массив, с верхним левым углом (0,0). Размер квадрата в миллиметрах.

squareSize = 29;
worldPoints = generateCheckerboardPoints(boardSize, squareSize);

Откалибруйте камеру.

I = readimage(images,1); 
imageSize = [size(I,1), size(I,2)];
cameraParams = estimateCameraParameters(imagePoints,worldPoints, ...
                              'ImageSize',imageSize);

Загрузить изображение в новое расположение.

imOrig = imread(fullfile(matlabroot,'toolbox','vision','visiondata', ...
    'calibration','slr','image9.jpg'));
figure 
imshow(imOrig);
title('Input Image');

Figure contains an axes. The axes with title Input Image contains an object of type image.

Неискаженное изображение.

[im,newOrigin] = undistortImage(imOrig,cameraParams,'OutputView','full');

Поиск ссылочного объекта в новом изображении.

[imagePoints,boardSize] = detectCheckerboardPoints(im);

Компенсация смещения системы координат изображения.

imagePoints = [imagePoints(:,1) + newOrigin(1), ...
             imagePoints(:,2) + newOrigin(2)];

Вычислите новые внешние элементы.

[rotationMatrix, translationVector] = extrinsics(...
imagePoints,worldPoints,cameraParams);

Вычислить позу камеры.

[orientation, location] = extrinsicsToCameraPose(rotationMatrix, ...
  translationVector);
figure
plotCamera('Location',location,'Orientation',orientation,'Size',20);
hold on
pcshow([worldPoints,zeros(size(worldPoints,1),1)], ...
  'VerticalAxisDir','down','MarkerSize',40);

Figure contains an axes. The axes contains 11 objects of type line, text, patch, scatter.

Входные аргументы

свернуть все

Координаты точек изображения, заданные как массив M-by-2. Массив содержит M координат [x, y]. imagePoints и worldPoints оба входа должны быть double или оба должны быть single.

Типы данных: single | double

Мировые координаты, соответствующие координатам изображения, указанным как матрица M-by-2. imagePoints и worldPoints оба входа должны быть double или оба должны быть single. Функция предполагает, что точки компланарны с z = 0 и количество точек M должно быть не менее 4.

Типы данных: single | double

Объект для хранения параметров камеры, указанный как cameraParameters, cameraIntrinsics, или fisheyeIntrinsics объект. Эти объекты возвращаются estimateCameraParameters функция, estimateFisheyeParameters функция или приложение «Калибратор камеры». Объект содержит внутренние, внешние параметры и параметры искажения объектива камеры.

Выходные аргументы

свернуть все

3-D поворот, возвращаемый в виде матрицы 3 на 3. Матрица поворота вместе с вектором перемещения позволяет преобразовывать точки из мировой системы координат в систему координат камеры.

Если установить imagePoints и worldPoints входы в класс double, то функция возвращает rotationMatrix и translationVector как double. В противном случае они single.

3-D трансляция, возвращаемая как вектор 1 на 3.

Если установить imagePoints и worldPoints входы в класс double, то функция возвращает rotationMatrix и translationVector как double. В противном случае они single.

Алгоритмы

extrinsics функция использует два различных алгоритма для вычисления внешних параметров в зависимости от того, worldPoints задаются как матрица M-by-2. Используйте матрицу M-by-2 для копланарных точек, где z = 0.

extrinsics функция вычисляет матрицу поворота и вектор перемещения для одного изображения в закрытом виде. Во время калибровки наружные элементы оцениваются численно, чтобы минимизировать ошибки репроекции для всех калибровочных изображений. Следовательно, использование extrinsics функция на одном из калибровочных изображений возвращает матрицу вращения и вектор трансляции, несколько отличающиеся от полученных при калибровке.

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

.
Представлен в R2014a