4

cvInitUndistortMap & cvRemap (カメラのキャリブレーションを行った) を介して歪みのない画像を画面に表示し、ユーザーが画像内の機能をクリックします。したがって、特徴の (u,v) ピクセル座標があり、固有マトリックスと歪みマトリックスもあります。

私が探しているのは、ユーザーがクリックした機能が存在する必要があるカメラ/現実世界の座標の 3D 線の方程式です。カメラのイメージ プレーンとフィーチャの間の垂直距離は既にわかっているので、それを前述の式と組み合わせて、空間内のフィーチャの (X、Y、Z) 座標を得ることができます。

簡単に聞こえますが (逆固有行列か何か?)、ステップバイステップの説明がどこにも見つかりません。C++ または C# コードが望ましい。

4

1 に答える 1

5

これは少し古い質問ですが、誰かにとってはまだ役に立つかもしれません。すべての行はポイント (0,0,0) を通過するため、次のようになります。

line.x0 = 0; line.y0 = 0; line.z0 = 0;

方向ベクトルは次のとおりです。 line.A = (u/fx) - (cx/fx); line.B = (v/fy) - (cy/fy); line.C = 1;

cx、cy、fx、fy は、カメラ マトリックスのパラメーターです。方程式は「Learning OpenCv」本で説明されています。

于 2011-04-15T19:29:57.967 に答える