diff --git a/modules/objdetect/include/opencv2/objdetect/aruco_detector.hpp b/modules/objdetect/include/opencv2/objdetect/aruco_detector.hpp index 281d772db8..2770a23e36 100644 --- a/modules/objdetect/include/opencv2/objdetect/aruco_detector.hpp +++ b/modules/objdetect/include/opencv2/objdetect/aruco_detector.hpp @@ -340,7 +340,7 @@ public: * using projectPoint function. If not, missing marker projections are interpolated using global * homography, and all the marker corners in the board must have the same Z coordinate. * @note This function assumes that the board only contains markers from one dictionary, so only the - * first configured dictionary is used. + * first configured dictionary is used. It has to match the dictionary of the board to work properly. */ CV_WRAP void refineDetectedMarkers(InputArray image, const Board &board, InputOutputArrayOfArrays detectedCorners, diff --git a/modules/objdetect/src/aruco/aruco_detector.cpp b/modules/objdetect/src/aruco/aruco_detector.cpp index 881b627d00..baa8cfc33b 100644 --- a/modules/objdetect/src/aruco/aruco_detector.cpp +++ b/modules/objdetect/src/aruco/aruco_detector.cpp @@ -837,7 +837,7 @@ struct ArucoDetector::ArucoDetectorImpl { } // Clean up rejectedImgPoints by comparing to itself and all candidates - const float epsilon = 0.000001; + const float epsilon = 0.000001f; auto compareCandidates = [epsilon](std::vector a, std::vector b) { for (int i = 0; i < 4; i++) { if (std::abs(a[i].x - b[i].x) > epsilon || std::abs(a[i].y - b[i].y) > epsilon) {