relativeCameraPose
(非推奨) カメラの姿勢間の相対的な回転と並進を計算
relativeCameraPose
は推奨されません。代わりに関数 estrelpose
を使用してください。詳細については、バージョン履歴を参照してください。
構文
説明
[
は、前の姿勢を基準としてキャリブレーションされたカメラの向きと位置を返します。2 つの姿勢は relativeOrientation
,relativeLocation
] = relativeCameraPose(M
,cameraParams
,inlierPoints1
,inlierPoints2
)M
によって関連付けられます。これは基礎行列、基本行列、affine2d
行列、または projective2d
行列でなければなりません。関数はスケールに沿ったカメラの位置を計算して、relativeLocation
を単位ベクトルとして返します。
[
は、最初のカメラに対する 2 番目のカメラの向きと位置を返します。relativeOrientation
,relativeLocation
] = relativeCameraPose(M
,cameraParams1
,cameraParams2
,inlierPoints1
,inlierPoints2
)
[
はさらに、両方のカメラの前面を投影するインライア点の割合を返します。relativeOrientation
,relativeLocation
,validPointsFraction
] = relativeCameraPose(M
, ___)
入力引数
出力引数
ヒント
カメラの姿勢
relativeOrientation
およびrelativeLocation
に対応するカメラの外部パラメーターrotationMatrix
およびtranslationVector
を計算できます。前のカメラの姿勢の方向は単位行列[rotationMatrix,translationVector] = cameraPoseToExtrinsics(relativeOrientation,relativeLocation)
eye(3)
であり、その位置は[0,0,0]
です。次に、
rotationMatrix
およびtranslationVector
を関数cameraMatrix
への入力として使用することができます。入力の基礎行列から方向と位置の 4 つの可能な組み合わせを計算できます。組み合わせのうち 3 つは物理的に実現可能ではありません。なぜなら、片方または両方のカメラの背後の 3 次元の点を投影しているためです。関数
relativeCameraPose
はinlierPoints1
およびinlierPoints2
を使用して、実現可能な組み合わせを決定します。