relativeCameraPose

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

Описание

[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, это может указать, что основная матрица является неправильной.

Советы

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

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

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

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

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

Введенный в R2017b