From f93f1aa65bdff31aaf934368af7dfd6cc228d3b7 Mon Sep 17 00:00:00 2001 From: Sebastian Hahta <joseha@utu.fi> Date: Tue, 8 Oct 2019 11:04:20 +0300 Subject: [PATCH] bug: intrinsic parameters were not fixed --- applications/calibration-multi/src/main.cpp | 21 ++++++++++++------- .../calibration-multi/src/multicalibrate.cpp | 5 +++-- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/applications/calibration-multi/src/main.cpp b/applications/calibration-multi/src/main.cpp index bee370d4c..f8593f9c7 100644 --- a/applications/calibration-multi/src/main.cpp +++ b/applications/calibration-multi/src/main.cpp @@ -237,18 +237,10 @@ void calibrate( MultiCameraCalibrationNew &calib, vector<string> &uri_cameras, Mat P1, P2, Q; Mat R1, R2; Mat R_c1c2, T_c1c2; - LOG(INFO) << K1; - LOG(INFO) << K2; calculateTransform(R[c], t[c], R[c + 1], t[c + 1], R_c1c2, T_c1c2); cv::stereoRectify(K1, D1, K2, D2, params.size, R_c1c2, T_c1c2, R1, R2, P1, P2, Q, 0, params.alpha); - Mat rvec; - cv::Rodrigues(R_c1c2, rvec); - LOG(INFO) << "From camera " << c << " to " << c + 1; - LOG(INFO) << "rotation: " << rvec.t(); - LOG(INFO) << "translation: " << T_c1c2.t(); - // calculate extrinsics from rectified parameters Mat _t = Mat(Size(1, 3), CV_64FC1, Scalar(0.0)); Rt_out[c] = getMat4x4(R[c], t[c]) * getMat4x4(R1, _t).inv(); @@ -270,6 +262,14 @@ void calibrate( MultiCameraCalibrationNew &calib, vector<string> &uri_cameras, ); LOG(INFO) << "Saved: " << params.output_path + node_name + "-extrinsic.yml"; } + else + { + Mat rvec; + cv::Rodrigues(R_c1c2, rvec); + LOG(INFO) << "From camera " << c << " to " << c + 1; + LOG(INFO) << "rotation: " << rvec.t(); + LOG(INFO) << "translation: " << T_c1c2.t(); + } if (params.save_intrinsic) { @@ -280,6 +280,11 @@ void calibrate( MultiCameraCalibrationNew &calib, vector<string> &uri_cameras, ); LOG(INFO) << "Saved: " << params.output_path + node_name + "-intrinsic.yml"; } + else if (params.optimize_intrinsic) + { + LOG(INFO) << "K1:\n" << K1; + LOG(INFO) << "K2:\n" << K2; + } } // for visualization diff --git a/applications/calibration-multi/src/multicalibrate.cpp b/applications/calibration-multi/src/multicalibrate.cpp index 9d85d1af7..0030d03b2 100644 --- a/applications/calibration-multi/src/multicalibrate.cpp +++ b/applications/calibration-multi/src/multicalibrate.cpp @@ -90,8 +90,9 @@ MultiCameraCalibrationNew::MultiCameraCalibrationNew( n_cameras_(n_cameras), reference_camera_(reference_camera), min_visible_points_(50), - fix_intrinsics_(fix_intrinsics == 1 ? 5 : 0), + // NOTE: modified cvsba (intrinsics fixed in different order) + fix_intrinsics_(fix_intrinsics == 1 ? 2 : 5), resolution_(resolution), K_(n_cameras), dist_coeffs_(n_cameras), @@ -491,7 +492,7 @@ double MultiCameraCalibrationNew::calibratePair(size_t camera_from, size_t camer // Bundle Adjustment // vector<Point3d> points3d_triangulated; // points3d_triangulated.insert(points3d_triangulated.begin(), points3d.begin(), points3d.end()); - LOG(INFO) << K1; + double err; cvsba::Sba sba; { -- GitLab