relativeCameraPose

Вычислите относительное вращение и перевод между положениями камеры

Синтаксис

[relativeOrientation,relativeLocation] = relativeCameraPose(M,cameraParams,inlierPoints1,inlierPoints2)
[relativeOrientation,relativeLocation] = relativeCameraPose(M,cameraParams1,cameraParams2,inlierPoints1,inlierPoints2)
[relativeOrientation,relativeLocation,validPointsFraction] = relativeCameraPose(M, ___)

Описание

[relativeOrientation,relativeLocation] = relativeCameraPose(M,cameraParams,inlierPoints1,inlierPoints2) возвращает ориентацию и местоположение калиброванной камеры относительно ее предыдущего положения. Два положения связаны M, который должен быть или основным принципом, важным, или матрицей projective2d. Функция вычисляет местоположение камеры, чтобы масштабироваться и возвращает relativeLocation как единичный вектор.

[relativeOrientation,relativeLocation] = relativeCameraPose(M,cameraParams1,cameraParams2,inlierPoints1,inlierPoints2) возвращает ориентацию и местоположение второй камеры относительно первой.

[relativeOrientation,relativeLocation,validPointsFraction] = relativeCameraPose(M, ___) дополнительно возвращается, часть inlier указывает что проект перед обеими камерами.

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

свернуть все

Основной принцип, существенная матрица или матрица homography, заданная как 3х3 матрица или объект projective2d, содержащий матрицу homography. Можно получить 3х3 матрицу с помощью одной из следующих функций:

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

Параметры камеры, заданные как объект cameraParameters или cameraIntrinsics. Можно возвратить объект cameraParameters с помощью функции estimateCameraParameters. Объект cameraParameters содержит внутреннее, внешнее, и параметры искажения объектива камеры.

Параметры камеры для камеры 1, заданный как объект cameraParameters или cameraIntrinsics. Можно возвратить объект cameraParameters с помощью функции estimateCameraParameters. Объект cameraParameters содержит внутреннее, внешнее, и параметры искажения объектива камеры.

Параметры камеры для камеры 2, заданный как объект cameraParameters или cameraIntrinsics. Можно возвратить объект cameraParameters с помощью функции estimateCameraParameters. Объект cameraParameters содержит внутреннее, внешнее, и параметры искажения объектива камеры.

Координаты соответствующих точек в поле зрения 1, заданный как M-by-2 матрица количества M [x, y] координаты, или как SURFPoints, MSERRegions или объект cornerPoints. Можно получить эти точки с помощью функции estimateFundamentalMatrix или estimateEssentialMatrix.

Координаты соответствующих точек в поле зрения 2, заданный как M-by-2 матрица количества M [x, y] координаты, или как SURFPoints, MSERRegions или объект cornerPoints. Можно получить эти точки с помощью функции estimateFundamentalMatrix или estimateEssentialMatrix.

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

свернуть все

Ориентация камеры, возвращенной как 3х3 матрица. Если вы используете только одну камеру, матрица описывает ориентацию второго положения камеры относительно первого положения камеры. Если вы используете две камеры, матрица описывает ориентацию камеры 2 относительно камеры 1.

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

Местоположение камеры, возвращенной как 1 3 единичный вектор. Если вы используете только одну камеру, вектор описывает местоположение второго положения камеры относительно первого положения камеры. Если вы используете две камеры, вектор описывает местоположение камеры 2 относительно камеры 1.

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

Часть допустимого inlier точки, что проект перед обеими камерами, возвратилась как скаляр. Если validPointsFraction является слишком маленьким, например, меньше чем 0,9, он может указать, что основная матрица является неправильной.

Советы

  • Можно вычислить камеру extrinsics, rotationMatrix и translationVector, соответствуя положению камеры, от relativeOrientation и relativeLocation:

    [rotationMatrix,translationVector] = cameraPoseToExtrinsics(relativeOrientation,relativeLocation)
    Ориентация предыдущего положения камеры является единичной матрицей, eye(3), и его местоположение, [0,0,0].

  • Можно затем использовать rotationMatrix и translationVector как входные параметры к функции cameraMatrix.

  • Можно вычислить четыре возможных комбинации ориентации и местоположения из входной фундаментальной матрицы. Три из комбинаций не физически осуществимы, потому что они проект 3-D указывают позади одного или обеих камер. Функция relativeCameraPose использует inlierPoints1 и inlierPoints2, чтобы определить осуществимую комбинацию.

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

Введенный в R2017b