2010-11-22 6 views
1

thisツールボックスカメラのキャリブレーションを行っていました。カメラキャリブレーションマトリックスの使い方は?

しかし、ツールボックスの結果は行列形式で出力され、noobであるので、私は実際に数学のことを理解しません。

マトリックスは次の形式です。 Rは回転行列である

alt text

、Tは並進ベクトルです。

これは私がツールボックスから得た結果です。ピクセル単位で値を出力します。

-0.980755 -0.136184 -0.139905 217.653207 
0.148552 -0.055504 -0.987346 995.948880 
0.126695 -0.989128 0.074666 371.963957 
0.000000 0.000000 0.000000 1.000000 

このデータを使用して、カメラの回転量とキャリブレーションオブジェクトからの距離を知ることができますか?

答えて

3

遠方部分は簡単です。原点からの平行移動は、右端の列の最初の3つの数字によって与えられます。これは、それぞれx、y、z方向の並進を表します。あなたの例では、カメラの位置p =(p x、p y、p z= 717.653207,995.948880,371.963957)です。ユークリッド距離は、カメラの位置と較正オブジェクトの位置(c x、c y、c z)を取ることができます。それはそれだけで((P X X -C ) +(P Y -C Y) +(P Z -C ZSQRTされるあります2

より困難な部分は、行列の左上の3x3要素に取り込まれた回転を考慮します。彼らがこれにどのように到着したか正確に知らなければ、あなたは多少運が悪いです。つまり、それがEuler Anglesに変換するのは簡単ではありません。ただし、これらの要素をQuaternion Rotationに変換すると、カメラをその向きに回転させるユニークな単位ベクトルと角度が得られます。計算の詳細はhereです。クォータニオン回転を取得したら、それをベクトルn =(0、0、1)、上=(0,1,0)、右=(1,0,0)に簡単に適用して、カメラは尖っています)、上下のベクトル。右のベクトルは、カメラを現在の位置から左右に旋回させることに関心がある場合にのみ便利です。

+0

カメラレンズまたはキャリブレーション用紙センターの原点とは何ですか?翻訳、私は理解していますが、私はまだ分かりません。どのようにしてカメラから校正オブジェクトまでのcx、cy、czまたは距離を取得できますか? –

+0

ソフトウェアは、較正オブジェクトを原点とみなしている可能性があります。その場合、cx = cy = cz = 0となる。そうでない場合は、ツールボックスのドキュメントを参照する必要があります。 – andand

+1

あなたが参照したウェブサイトをもう少し見てみると、ドキュメントはやや疎です。だから、あなたはいくつかのオプションがあります。最初は、提供されたソースコードからそれを理解しようとすることです。もう1つは著者に連絡してどのような情報を提供するかを確認することです。 – andand

1

私は、コードが 'standard'フォーメーションを使用していると推測しています。詳細はopencv library docsまたはその本をご覧ください。

+0

"標準"編成とは何ですか? –

+0

この文脈では、http://www.amazon.com/Multiple-View-Geometry-Computer-Vision/dp/0521540518/ref=wl_it_dp_o?ie=UTF8&coliid=I2HGS590RAY8I9&colid=37VYKHXCSPCIDに基づいたIIRCであるJean-Yves Bouguet博士 –