ステレオキャリブレーションを使用して、視覚障害者の進路にある障害物を検出するプロジェクトを opencv で行っています。視差マップを正しく計算しました。カメラから障害物までの距離を見つけるために、その 3D 座標 [X,Y,Z] が必要です。これは reprojectImageTo3D() で見つけることができると推測していますが、この関数で使用する Q 行列がありません。おそらく事前に調整された画像を使用したため、stereoRectify() から取得している Q マトリックスが null になっています。カメラの内因性パラメーターと外因性パラメーターはありますが。私の質問は、カメラに関する焦点距離、ベースライン、およびその他すべてがわかっている場合、関数 reprojectImageTo3D() で直接使用する Q マトリックスを手動で作成するにはどうすればよいかということです。Q マトリックスの基本的な形式は何ですか?
21522 次
2 に答える
23
Q 行列の形式は次のように与えられます。
そのイメージでは、c xとc yは左カメラの主点の座標 (左カメラが支配的な状態でステレオ マッチングを行った場合)、c' xは右カメラの主点の x 座標です (のフラグを指定した場合、c xとc' xは同じになります) 。fは焦点距離で、T xは基線の長さです (基線の長さの負の値である可能性があります。これは、1 つの光学中心から別の光学中心への移動です。考える)。CV_CALIB_ZERO_DISPARITY
stereoRectify()
詳細については、本Learning OpenCVをご覧になることをお勧めします。これはまだ古い C インターフェースに基づいていますが、基礎となる理論をうまく説明しており、Q 行列の形式のソースとなった場所でもあります。
于 2015-02-04T09:29:48.227 に答える