From e4fabe393cf86618ebb474f8e81bb05a30b4fc8f Mon Sep 17 00:00:00 2001 From: Alexander Smorkalov Date: Thu, 24 Jul 2025 14:29:09 +0300 Subject: [PATCH] More intrinsic calibration flags in integractive calibration tool. --- apps/interactive-calibration/calibCommon.hpp | 6 ++++++ apps/interactive-calibration/main.cpp | 4 ++++ apps/interactive-calibration/parametersController.cpp | 3 +++ 3 files changed, 13 insertions(+) diff --git a/apps/interactive-calibration/calibCommon.hpp b/apps/interactive-calibration/calibCommon.hpp index ed6c3613d1..967982300b 100644 --- a/apps/interactive-calibration/calibCommon.hpp +++ b/apps/interactive-calibration/calibCommon.hpp @@ -118,6 +118,9 @@ namespace calib double solverEps; int solverMaxIters; bool fastSolving; + bool rationalModel; + bool thinPrismModel; + bool tiltedModel; double filterAlpha; internalParameters() @@ -125,6 +128,9 @@ namespace calib solverEps = 1e-7; solverMaxIters = 30; fastSolving = false; + rationalModel = false; + thinPrismModel = false; + tiltedModel = false; filterAlpha = 0.1; } }; diff --git a/apps/interactive-calibration/main.cpp b/apps/interactive-calibration/main.cpp index b9ec7e8805..889a536a69 100644 --- a/apps/interactive-calibration/main.cpp +++ b/apps/interactive-calibration/main.cpp @@ -134,6 +134,10 @@ int main(int argc, char** argv) int calibrationFlags = 0; if(intParams.fastSolving) calibrationFlags |= cv::CALIB_USE_QR; + if(intParams.rationalModel) calibrationFlags |= cv::CALIB_RATIONAL_MODEL; + if(intParams.thinPrismModel) calibrationFlags |= cv::CALIB_THIN_PRISM_MODEL; + if(intParams.tiltedModel) calibrationFlags |= cv::CALIB_TILTED_MODEL; + cv::Ptr controller(new calibController(globalData, calibrationFlags, parser.get("ft"), capParams.minFramesNum)); cv::Ptr dataController(new calibDataController(globalData, capParams.maxFramesNum, diff --git a/apps/interactive-calibration/parametersController.cpp b/apps/interactive-calibration/parametersController.cpp index 90d24b04c9..48639a2bdb 100644 --- a/apps/interactive-calibration/parametersController.cpp +++ b/apps/interactive-calibration/parametersController.cpp @@ -49,6 +49,9 @@ bool calib::parametersController::loadFromFile(const std::string &inputFileName) readFromNode(reader["solver_eps"], mInternalParameters.solverEps); readFromNode(reader["solver_max_iters"], mInternalParameters.solverMaxIters); readFromNode(reader["fast_solver"], mInternalParameters.fastSolving); + readFromNode(reader["rational_model"], mInternalParameters.rationalModel); + readFromNode(reader["thin_prism_model"], mInternalParameters.thinPrismModel); + readFromNode(reader["tiltedModel"], mInternalParameters.tiltedModel); readFromNode(reader["frame_filter_conv_param"], mInternalParameters.filterAlpha); bool retValue =