relativeCameraPose

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

Описание

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

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

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

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

свернуть все

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

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

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

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

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

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

Координаты соответствующих точек в представлении 2, заданные как матрица M-на-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 для определения реализуемой комбинации.

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

.
Введенный в R2016b