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');

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

[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);

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

свернуть все

Отобразите координаты точек, заданных как 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