ピクセル座標3Dライン(opencv)へ
-
29-09-2019 - |
質問
画面に画像が表示されており、CVINITUNDISTORTMAP&CVREMAP(カメラのキャリブレーションを行った)を介して歪みません。ユーザーは画像の機能をクリックします。そのため、機能の(u、v)ピクセル座標があり、内因性マトリックスと歪みマトリックスもあります。
私が探しているのは、ユーザーがクリックした機能が嘘をつく必要があるカメラ/現実世界の座標の3Dラインの方程式です。私はすでにカメラのイメージプレーンと機能の間に垂直な距離を持っているので、それを前述の方程式と組み合わせて、空間の特徴の(x、y、z)座標を与えることができます。
簡単に聞こえます(逆本質的なマトリックスか何か?)が、どこでも段階的な指示が見つかりません。 C ++またはC#コードが望ましい。
解決
これは少し古い質問ですが、それでも誰かにとって有用かもしれません。すべての行はポイント(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は、カメラマトリックスのパラメーターです。方程式は、「学習OpenCV」ブックで説明されています。
所属していません StackOverflow