exponenta event banner

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, ___) кроме того, возвращает часть точек входа, которые проецируются перед обеими камерами.

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

свернуть все

Фундаментальная, существенная матрица или матрица гомографии, заданная как матрица 3 на 3, объект affine2d или projective2d объект, содержащий матрицу гомографии. Матрицу 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 М числа координат [x, y], или в виде SURFPoints, MSERRegions, или cornerPoints объект. Вы можете получить эти баллы с помощью estimateFundamentalMatrix функции или estimateEssentialMatrix.

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

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

свернуть все

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

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

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

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

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