From c782aaa1c9acfc18bc356a23e9fc27cc4dd5a135 Mon Sep 17 00:00:00 2001 From: Fabien Spindler Date: Thu, 6 Mar 2025 09:19:44 +0100 Subject: [PATCH] Save reprojection error for each image in the resulting xml file --- .../intrinsic/visp-calibrate-camera.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/apps/calibration/intrinsic/visp-calibrate-camera.cpp b/apps/calibration/intrinsic/visp-calibrate-camera.cpp index 21dc8e975a..2f215cc5da 100644 --- a/apps/calibration/intrinsic/visp-calibrate-camera.cpp +++ b/apps/calibration/intrinsic/visp-calibrate-camera.cpp @@ -439,12 +439,14 @@ int main(int argc, const char *argv[]) d->init(I); vpDisplay::setTitle(I, "Without distortion results"); - + ss_additional_info << ""; for (size_t i = 0; i < calibrator.size(); i++) { double reproj_error = sqrt(calibrator[i].getResidual() / calibrator[i].get_npt()); const CalibInfo &calib = calib_info[i]; std::cout << "Image " << calib.m_frame_name << " reprojection error: " << reproj_error << std::endl; + + ss_additional_info << "" << reproj_error << ""; I = calib.m_img; vpDisplay::display(I); @@ -482,8 +484,9 @@ int main(int argc, const char *argv[]) } std::cout << "\nGlobal reprojection error: " << error << std::endl; - ss_additional_info << "" << error << ""; + ss_additional_info << "" << error << ""; + ss_additional_info << ""; vpXmlParserCamera xml; if (xml.save(cam, opt_output_file_name.c_str(), opt_camera_name, I.getWidth(), I.getHeight()) == @@ -516,11 +519,13 @@ int main(int argc, const char *argv[]) std::cout << cam << std::endl; vpDisplay::setTitle(I, "With distortion results"); + ss_additional_info << ""; for (size_t i = 0; i < calibrator.size(); i++) { double reproj_error = sqrt(calibrator[i].getResidual_dist() / calibrator[i].get_npt()); const CalibInfo &calib = calib_info[i]; std::cout << "Image " << calib.m_frame_name << " reprojection error: " << reproj_error << std::endl; + ss_additional_info << "" << reproj_error << ""; I = calib.m_img; vpDisplay::display(I); @@ -556,9 +561,10 @@ int main(int argc, const char *argv[]) vpTime::wait(s.tempo * 1000); } } - std::cout << "\nGlobal reprojection error: " << error << std::endl; - ss_additional_info << "" << error << ""; + ss_additional_info << "" << error << ""; + + ss_additional_info << ""; vpImage I_undist; vpImage I_dist_undist(I.getHeight(), 2 * I.getWidth());