diff --git a/applications/gui2/src/modules/calibration/calibration.hpp b/applications/gui2/src/modules/calibration/calibration.hpp index af27c0f82c3720d0fe8ef9e2cffe1bebff8afbf1..a30a67e4d71d39b9a70afb0102f15fa31c7187ea 100644 --- a/applications/gui2/src/modules/calibration/calibration.hpp +++ b/applications/gui2/src/modules/calibration/calibration.hpp @@ -317,11 +317,12 @@ public: enum Flags { ZERO_DISTORTION = 1, - FIX_INTRINSIC = 2, - FIX_FOCAL = 4, - FIX_PRINCIPAL_POINT = 8, - FIX_DISTORTION = 16, - LOSS_CAUCHY = 32, + RATIONAL_MODEL = 2, + FIX_INTRINSIC = 4, + FIX_FOCAL = 8, + FIX_PRINCIPAL_POINT = 16, + FIX_DISTORTION = 32, + LOSS_CAUCHY = 64, }; void setFlags(int flags); diff --git a/applications/gui2/src/modules/calibration/extrinsic.cpp b/applications/gui2/src/modules/calibration/extrinsic.cpp index 83debcedf44ae7ee1b2301d5bd2538da0279e6f3..d7847b4a2097fb3a5d2ffe0cedcb78c367e82a5f 100644 --- a/applications/gui2/src/modules/calibration/extrinsic.cpp +++ b/applications/gui2/src/modules/calibration/extrinsic.cpp @@ -308,12 +308,15 @@ void ExtrinsicCalibration::run() { auto opt = state_.calib.options(); opt.optimize_intrinsic = !(state_.flags & Flags::FIX_INTRINSIC); + opt.rational_model = state_.flags & Flags::RATIONAL_MODEL; opt.fix_focal = state_.flags & Flags::FIX_FOCAL; opt.fix_distortion = state_.flags & Flags::FIX_DISTORTION; + opt.zero_distortion = state_.flags & Flags::ZERO_DISTORTION; opt.fix_principal_point = state_.flags & Flags::FIX_PRINCIPAL_POINT; opt.loss = (state_.flags & Flags::LOSS_CAUCHY) ? ftl::calibration::BundleAdjustment::Options::Loss::CAUCHY : ftl::calibration::BundleAdjustment::Options::Loss::SQUARED; + state_.calib.setOptions(opt); state_.calib.run();