Merge pull request #22986 from AleksandrPanov:move_contrib_charuco_to_main_objdetect
authorAlexander Panov <alexander.panov@xperience.ai>
Wed, 28 Dec 2022 14:28:59 +0000 (17:28 +0300)
committerGitHub <noreply@github.com>
Wed, 28 Dec 2022 14:28:59 +0000 (17:28 +0300)
commit121034876ddfe9553babc868db644e2ebd74e318
tree5d95963b40e16c9227572ce38c18e60dfa6a724d
parent9627ab9462a4304a490df40f752137c140c69ec7
Merge pull request #22986 from AleksandrPanov:move_contrib_charuco_to_main_objdetect

merge with https://github.com/opencv/opencv_contrib/pull/3394

move Charuco API from contrib to main repo:

- add CharucoDetector:
```
CharucoDetector::detectBoard(InputArray image, InputOutputArrayOfArrays markerCorners, InputOutputArray markerIds,
                             OutputArray charucoCorners, OutputArray charucoIds) const // detect charucoCorners and/or markerCorners
CharucoDetector::detectDiamonds(InputArray image, InputOutputArrayOfArrays _markerCorners,
                                InputOutputArrayOfArrays _markerIds, OutputArrayOfArrays _diamondCorners,
                                OutputArray _diamondIds) const
```

- add `matchImagePoints()` for `CharucoBoard`
- remove contrib aruco dependencies from interactive-calibration tool
- move almost all aruco tests to objdetect

### 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.
- [x] The feature is well documented and sample code can be built with the project CMake
21 files changed:
apps/interactive-calibration/CMakeLists.txt
apps/interactive-calibration/calibController.cpp
apps/interactive-calibration/frameProcessor.cpp
apps/interactive-calibration/frameProcessor.hpp
apps/interactive-calibration/main.cpp
apps/interactive-calibration/parametersController.cpp
modules/objdetect/include/opencv2/objdetect.hpp
modules/objdetect/include/opencv2/objdetect/aruco_board.hpp
modules/objdetect/include/opencv2/objdetect/aruco_detector.hpp
modules/objdetect/include/opencv2/objdetect/aruco_dictionary.hpp
modules/objdetect/include/opencv2/objdetect/charuco_detector.hpp [new file with mode: 0644]
modules/objdetect/misc/java/test/ArucoTest.java
modules/objdetect/misc/python/test/test_objdetect_aruco.py
modules/objdetect/perf/perf_aruco.cpp [new file with mode: 0644]
modules/objdetect/src/aruco/aruco_board.cpp
modules/objdetect/src/aruco/aruco_detector.cpp
modules/objdetect/src/aruco/charuco_detector.cpp [new file with mode: 0644]
modules/objdetect/test/test_aruco_utils.cpp [new file with mode: 0644]
modules/objdetect/test/test_aruco_utils.hpp [new file with mode: 0644]
modules/objdetect/test/test_boarddetection.cpp [new file with mode: 0644]
modules/objdetect/test/test_charucodetection.cpp [new file with mode: 0644]