From c1a4c304bc621d820dc49dd7a4510975ab4ded16 Mon Sep 17 00:00:00 2001 From: Sebastian Hahta <joseha@utu.fi> Date: Mon, 27 Jan 2020 17:06:32 +0200 Subject: [PATCH] allow distortion parameters to be optimized --- applications/calibration-multi/src/main.cpp | 18 ++++-------------- .../calibration-multi/src/multicalibrate.cpp | 2 +- 2 files changed, 5 insertions(+), 15 deletions(-) diff --git a/applications/calibration-multi/src/main.cpp b/applications/calibration-multi/src/main.cpp index 0b84d6449..7a89a400a 100644 --- a/applications/calibration-multi/src/main.cpp +++ b/applications/calibration-multi/src/main.cpp @@ -132,7 +132,6 @@ bool setRectifyRPC(ftl::net::Universe* net, ftl::stream::Net* nstream, bool enab } bool setIntrinsicsRPC(ftl::net::Universe* net, ftl::stream::Net* nstream, Size size, vector<Mat> K, vector<Mat> D) { - return true; return net->call<bool>(nstream->getPeer(), "set_intrinsics", size, K[0], D[0], K[1], D[1] ); } @@ -206,31 +205,22 @@ void calibrateRPC( ftl::net::Universe* net, LOG(INFO) << K2; LOG(INFO) << R_c1c2; LOG(INFO) << T_c1c2; - LOG(INFO) << "R.isContinuous(): " << R_c1c2.isContinuous (); - LOG(INFO) << "R.step: " << R_c1c2.step; - LOG(INFO) << "R.cols: " << R_c1c2.cols; - LOG(INFO) << "T.isContinuous(): " << T_c1c2.isContinuous (); - LOG(INFO) << "T.step: " << T_c1c2.step; - LOG(INFO) << "T.cols: " << T_c1c2.cols; + LOG(INFO) << "--------------------------------------------------------"; auto *nstream = nstreams[c/2]; while(true) { try { if (params.optimize_intrinsic) { - setIntrinsicsRPC(net, nstream, - params.size, - vector<Mat>{calib.getCameraMat(c), calib.getCameraMat(c+1)}, - vector<Mat>{calib.getDistCoeffs(c), calib.getDistCoeffs(c+1)} - ); + setIntrinsicsRPC(net, nstream, params.size, {K1, K2}, {D1, D2}); } setExtrinsicsRPC(net, nstream, R_c1c2, T_c1c2); setPoseRPC(net, nstream, Rt_out[c]); saveCalibrationRPC(net, nstream); LOG(INFO) << "CALIBRATION SENT"; break; - } - catch (std::exception &ex) { + + } catch (std::exception &ex) { LOG(ERROR) << "RPC failed: " << ex.what(); sleep(1); } diff --git a/applications/calibration-multi/src/multicalibrate.cpp b/applications/calibration-multi/src/multicalibrate.cpp index 754c1aa83..40c7e0bb3 100644 --- a/applications/calibration-multi/src/multicalibrate.cpp +++ b/applications/calibration-multi/src/multicalibrate.cpp @@ -700,7 +700,7 @@ double MultiCameraCalibrationNew::calibrateAll(int reference_camera) { double err; cvsba::Sba sba; { - sba.setParams(cvsba::Sba::Params(cvsba::Sba::TYPE::MOTIONSTRUCTURE, 200, 1.0e-24, fix_intrinsics_, 5, false)); + sba.setParams(cvsba::Sba::Params(cvsba::Sba::TYPE::MOTIONSTRUCTURE, 200, 1.0e-24, fix_intrinsics_, fix_intrinsics_, false)); vector<Mat> rvecs(R_.size()); vector<vector<int>> visible(R_.size()); -- GitLab