続き.今度はステレオカメラのキャリブレーション.
前提:
- mainの実行
>> stereo_gui - 各カメラの内部・外部パラメータのロード
>> Load left and right calibration files - ステレオのキャリブレーション
>> Run stereo calibration - 結果の保存
>> Save stereo calib results
stereo_triangulation.mを使うと,点の3次元座標を計算できる.
各画像の格子点情報は以下の変数として格納されている(n = 画像の数).
x_left_1, x_left_2, x_left_3, ..., x_left_n
x_right_1, x_right_2, x_right_3, ..., x_right_n
サイズが2×格子点の数のdouble型の行列で,以下のようにデータが格納されている.
|x1 x2 x3 ... xm|
| | (m = 格子点の数)
|y1 y2 y3 ... ym|
stereo_triangulationを実行するためには,各カメラの対応点群(e.g., x_left_1, x_right_1)とカメラ間の外部パラメータ(om and T)及び各カメラの内部パラメータが必要.
各カメラ画像中の点の3次元座標をXc_1_left,Xc_1_rightに格納するとすると,以下のようにして求める.
[Xc_1_left,Xc_1_right] = stereo_triangulation(x_left_1, x_right_1, om, T, fc_left, cc_left, kc_left, alpha_c_left, fc_right, cc_right, kc_right, alpha_c_right);
返戻値として返ってくるXc_1_left,Xc_1_rightは以下のようなデータ.
|x1 x2 x3 ... xl|
|y1 y2 y3 ... yl| (l = 対応点の数)
|z1 z2 z3 ... zl|
ちゃんと読みきれてないが,データを見る限りでは,この3次元座標は各カメラ座標系における3次元座標に見える.