Skip to content

Resolve "Extrinsic calibration does not calculate correct reprojection error"

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

Merge request reports