opencv/modules/calib3d
John Stechschulte 7b31cc7314
Merge pull request #24897 from JStech:fix-handeye
Fix handeye #24897

Fixes to the hand-eye calibration methods, from #24871.

The Tsai method is sensitive to poses separated by small rotations, so I filter those out.

The Horaud and Daniilidis methods use quaternions (and dual quaternions), where $q$ and $-q$ represent the same transform.
However, these methods depend on the gripper motion and camera motion having the same sign for the real part.
The fix was simply to multiply the (dual) quaternions by -1 if their real part is negative.

### Pull Request Readiness Checklist

See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request

- [x] I agree to contribute to the project under Apache 2 License.
- [x] To the best of my knowledge, the proposed patch is not based on a code under GPL or another license that is incompatible with OpenCV
- [x] The PR is proposed to the proper branch
- [x] There is a reference to the original bug report and related work
- [x] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
      Patch to opencv_extra has the same branch name.
- [ ] ~~The feature is well documented and sample code can be built with the project CMake~~ N/A
2024-05-25 11:28:13 +03:00
..
doc Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2021-12-24 16:48:07 +00:00
include/opencv2 Merge pull request #24897 from JStech:fix-handeye 2024-05-25 11:28:13 +03:00
misc Merge pull request #25028 from asmorkalov:as/fisheye_solvepnp 2024-02-16 17:54:40 +03:00
perf Merge pull request #23109 from seanm:misc-warnings 2023-10-06 13:33:21 +03:00
src Merge pull request #24897 from JStech:fix-handeye 2024-05-25 11:28:13 +03:00
test Merge pull request #24897 from JStech:fix-handeye 2024-05-25 11:28:13 +03:00
CMakeLists.txt Revert "suppress warning on GCC 7 and later" 2022-08-07 15:43:10 +03:00