2

ラボで固有値(カメラ行列と歪み係数)をすでに計算している場合。

その後、カメラを実世界のフィールドに移動しました。SolvePnP()を使用してカメラのポーズを推定するために、実世界で約6〜10の既知の場所を使用しました。だから私は2台のカメラの回転と平行移動も持っています。

次に、2台のカメラを使用してステレオ通信を作成します。質問は:stereoCalibrate()を使用する必要がありますか?

または、既知の組み込み関数を使用して、StereoRectifyをすぐに呼び出すことはできますか?StereoRectify()は回転と平行移動のベクトル/行列を期待していると書かれていますが、ドキュメントは次のことを期待していると言っています。

"The rotation matrix between the 1st and the 2nd cameras’ coordinate systems."

両方のカメラのカメラポーズがあるので、SolvePnPから取得した2つの平行移動ベクトルと回転ベクトルを単純に減算し、その結果をStereoRectify()に渡すことはできますか?(両方のカメラは同じ共通のオブジェクトポイント参照システムを使用します)

4

1 に答える 1

1

カメラを世界(たとえば、既知の場所)に合わせて調整することは、カメラを相互に調整することとは異なります。あなたの場合、あなたは並進ベクトルを引くことができます。これにより、1つのカメラから別のカメラへの変換が可能になります(同じ固定点でカメラをキャリブレーションした場合)。カメラ間の回転行列を取得することもできますが、これを単純に減算するだけでは実行できません。より複雑な計算が必要になります。そのため、opencvが提供するステレオキャリブレーションを使用することをお勧めします。

于 2013-01-16T17:26:51.767 に答える