4

私は4台のps3eyeカメラを持っています。そして、OpenCVライブラリのcvStereoCalibrate()関数を使用して、チェス盤のパターンを使用して、コーナーを見つけ、それらの3D座標をこの関数に渡すことにより、camera1とcamera2を調整しました。

また、camera2とcamera3で表示される別のチェス盤画像のセットを使用してcamera2とcamera3を調整しました。

同じ方法を使用して、camera3とcamera4をキャリブレーションしました。

これで、camera1とcamera2の外因性と内因性のパラメーター、camera2とcamera3の外因性と内因性のパラメーター、camera3とcamera4の外因性と内因性のパラメーターがわかりました。

ここで、外因性パラメーターは回転と並進の行列であり、内因性パラメーターは焦点距離と主点の行列です。

ここで、camera1とcamera2では表示されないcamera3とcamera4で表示される3dポイント(ワールド座標)(ステレオカメラから3d座標を見つける方法を知っています)があるとします。

私が持っている質問は、camera3とcamera4によって表示されるこの3Dワールド座標点を取得し、回転、平行移動、フォーカス、および主点パラメーターを使用して、camera1とcamera2のワールド座標系に対してどのように変換するかです。

4

1 に答える 1

1

OpenCVのステレオキャリブレーションは、2台のカメラ間の相対的な外因性マトリックスのみを提供します。

そのドキュメントによると、ワールド座標での変換は取得されません(つまり、キャリブレーションパターンに関連して)。ただし、画像の1つに対して定期的なカメラのキャリブレーションを実行し、少なくともその変換を知っていることをお勧めします。cv :: stereoCalibrate

キャリブレーションが完璧であれば、デイジーチェーン設定を使用して、任意のカメラの世界変換を導き出すことができます。

私の知る限り、これはあまり安定していません。キャリブレーションを実行するときに、複数のカメラがあるという事実を考慮する必要があるためです。

マルチカメラのキャリブレーションは、最も些細な問題ではありません。見て:

私もこれに対する解決策を探しているので、これとOpenCVについてもっと知りたい場合は、私に知らせてください。

于 2012-06-14T12:03:13.133 に答える