0

内因性と外因性のパラメータを知っている、キャリブレーションされたカメラのペアを持っています。両方が平面を向いていることを知っているので、一方の画像でいくつかの点を定義した場合、もう一方の画像でその点を取得するにはどうすればよいですか?

カメラは互いにかなり接近しているので、オクルージョンがないと仮定すると、両方が同じオブジェクトを見ることができます。

これを行うためのopenCV機能または一連の関数はありますか?私のポイントは、世界のZ=0です。

基本的に:

P_CAM1=(200,300) -> P_CAM2= ?
4

1 に答える 1

0

答え:

  1. 画像の歪みを取り除きます。cv::undistort
  2. P1ccdf = A^(-1)*P1f=1の世界参照座標で->P1点を計算します。
  3. そのための世界参照のポイントを計算しZ=0ます。
    • 世界の光学中心座標を計算します:Copt1 = [0,0,0,1] TCopt1w=-R1t*T1
    • Coptw1とP1ccdfの間のベクトルを計算します:いくつかの数学を使って->V1w=R1T*P1ccdf
    • Coptw1+lambda*V1w=[Pxw,Pyw,0]T->lambda=-cpotw(z)/V1(z)
    • Coptw1+lambda*V1w=[Pxw,Pyw,0]T=P1w
  4. ワールドポイントをcam2に保護
    • P1ccd2f = R2T2 *[Pxw Pyw 0 1]T
    • P1ccd2f=P1ccd2f/P1ccd2f(3)
    • P2=A2*P1ccd2f

どこ

于 2013-03-19T09:42:10.910 に答える