diff --git a/modules/mcc/src/checker_detector.cpp b/modules/mcc/src/checker_detector.cpp index 2de276d87fc..a7d624e15a6 100644 --- a/modules/mcc/src/checker_detector.cpp +++ b/modules/mcc/src/checker_detector.cpp @@ -232,9 +232,12 @@ bool CCheckerDetectorImpl:: #endif for (Ptr checker : checkers) { - for (cv::Point2f &corner : checker->getBox()) - corner += static_cast(region.tl()); - + const std::vector& checkerBox = checker->getBox(); + std::vector restore_box(checkerBox.size()); + for (size_t a = 0; a < checkerBox.size(); ++a) { + restore_box[a] = checkerBox[a] + static_cast(region.tl()); + } + checker->setBox(restore_box); { cv::AutoLock lock(mtx); m_checkers.push_back(checker); @@ -453,9 +456,12 @@ bool CCheckerDetectorImpl:: #endif for (Ptr checker : checkers) { - for (cv::Point2f &corner : checker->getBox()) - corner += static_cast(region.tl() + innerRegion.tl()); - + const std::vector& checkerBox = checker->getBox(); + std::vector restore_box(checkerBox.size()); + for (size_t a = 0; a < checkerBox.size(); ++a) { + restore_box[a] = checkerBox[a] + static_cast(region.tl() + innerRegion.tl()); + } + checker->setBox(restore_box); { cv::AutoLock lock(mtx); m_checkers.push_back(checker);