Resolve "Extrinsic calibration does not calculate correct reprojection error"
requested to merge 427-extrinsic-calibration-does-not-calculate-correct-reprojection-error into master
Due to a mistake in !267 (merged), the error of the extrinsic calibration was calculated using the old calibration (i.e. all zeros on a new project). This leads to a terrible error and thusly to the rejection of the new calibration.
This MR fixes this by using the new extrinsic parameters to calculate the reprojection error. It also adds some simple regression tests for the extrinsic calibration to catch such mistakes earlier in the future.
To reproduce, the test data can be used. On the old version, loading the before.3dc
will lead to an error Could not calibrate
, while on the new version, it will result in a proper calibration (using 01_intrinsics.pet
as project)
Closes #427 (closed)
Reviewer Checklist
Formatting
-
the pre-build checks succeed
General code quality
-
naming conventions are met (see .clang-tidy for detailed information) -
no static analyzer warnings in new code parts (e.g., use clang-tidy for checking)
General usability
-
old versions of pet-files are still loadable
Only if changes in UI
-
new elements are also saved and loaded from pet-file -
check if tab order is still correct -
all new SpinBoxes are promoted -
new keybindings added to Petrack::keyBindings()
Edited by l.dressen