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 object. The axes object 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 object. The axes object 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 функция или приложение Camera Calibrator. Объект содержит внутренний параметр, значение внешних параметров и параметры искажения объектива камеры.

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

свернуть все

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