Вычислите относительное вращение и перемещение между положениями камеры
[
возвращает ориентацию и расположение калиброванной камеры относительно ее предыдущего положения. Эти два положения связаны relativeOrientation
,relativeLocation
]
= relativeCameraPose(M
,cameraParams
,inlierPoints1
,inlierPoints2
)M
, которая должна быть фундаментальной, важной, affine2d
, или projective2d
матрица. Функция вычисляет местоположение камеры до масштаба и возвращается relativeLocation
как вектор- модуль.
[
возвращает ориентацию и расположение второй камеры относительно первой.relativeOrientation
,relativeLocation
]
= relativeCameraPose(M
,cameraParams1
,cameraParams2
,inlierPoints1
,inlierPoints2
)
[
дополнительно возвращает часть точек inlier, которые проектируются перед обеими камерами.relativeOrientation
,relativeLocation
,validPointsFraction
]
= relativeCameraPose(M
, ___)
Можно вычислить внешнюю камеру, rotationMatrix
и translationVector
, соответствующий положению камеры, от relativeOrientation
и relativeLocation
:
[rotationMatrix,translationVector] = cameraPoseToExtrinsics(relativeOrientation,relativeLocation)
eye(3)
, и его местоположение, [0,0,0]
.Затем можно использовать rotationMatrix
и translationVector
в качестве входов cameraMatrix
функция.
Можно вычислить четыре возможные комбинации ориентации и местоположения из входа основной матрицы. Три комбинации физически не реализуемы, потому что проецируют 3-D точки позади одной или обеих камер. relativeCameraPose
функция использует inlierPoints1
и inlierPoints2
для определения реализуемой комбинации.
Camera Calibrator | cameraMatrix
| cameraPoseToExtrinsics
| estimateCameraParameters
| estimateEssentialMatrix
| estimateFundamentalMatrix
| estimateWorldCameraPose
| plotCamera
| triangulate
| triangulateMultiview