2D-3Dポイントの関係によって画像またはカメラの位置の前面平行ビューを取得することは可能ですか?
-
27-10-2019 - |
質問
2D-3Dポイントの関係を使用して、画像またはカメラの位置のフロントパラレルビューを取得することは可能ですか OpenCV
?
このためには、本質的および外因性パラメーターがあります。また、画像上のコントロールポイントのセット(1つの平面にある)の3D座標(関係2D-3D)もあります。
実際、カメラの位置と向きが必要ですが、画像を正面平行ビューに変換できる場合、それを見つけることは難しくありません。
OpenCVを使用できない場合、このタスクを解決できる他のライブラリはありますか?
解決
ソリューションは、OPENCVドキュメントの式に基づいています カメラのキャリブレーションと3D再構成
歪み係数のない数値形式を考えてみましょう(マトリックス形式とは対照的です)。
我々は持っています u
と v
.
計算は簡単です x'
と y'
.
しかし x
と y
ゼロ以外を選択できるため計算できません z
.
3Dの線は、2D画像の1つのポイントに対応します。
これを解決するには、2つのポイントを獲得します z=1
と z=2
。次に、ラインを指定する3Dスペースに2ポイントを見つけます (x1,y1,z1)
と (x2,y2,z2)
.
その後、適用できます R
-1 に (x1,y1,z1)
と (x2,y2,z2)
その結果、2つのポイントで決定されます (X1, Y1, Z1)
と (X1, Y1, Z1)
.
私たちの制御ポイントは1つの平面にあるので(簡単にするために平面はz = 0です)、対応することができます X
と Y
3Dのポイントであるポイント。
からの正規化を適用した後 mm
ピクセルまで、前面平行画像を取得します。
(入力画像が歪んでいる場合は、最初に歪む必要があります)