From 16bb0600bd08f94e5bfa07692ce4f105622c5566 Mon Sep 17 00:00:00 2001 From: Alexander Smorkalov Date: Wed, 17 Sep 2025 10:47:25 +0300 Subject: [PATCH] Use clustering for findCirclesGrid in multiview calibration to get rid of pattern flip. --- samples/python/multiview_calibration.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/samples/python/multiview_calibration.py b/samples/python/multiview_calibration.py index 14d9320959..712fa4f21f 100644 --- a/samples/python/multiview_calibration.py +++ b/samples/python/multiview_calibration.py @@ -729,15 +729,17 @@ def detect(cam_idx, frame_idx, img_name, pattern_type, corners, winsize, (-1,-1), criteria) elif pattern_type.lower() == 'circles': + # Workaround: CALIB_CB_CLUSTERING does not allow pattern flip ret, corners = cv.findCirclesGrid( - img_detection, patternSize=grid_size, flags=cv.CALIB_CB_SYMMETRIC_GRID + img_detection, patternSize=grid_size, flags=cv.CALIB_CB_SYMMETRIC_GRID+cv.CALIB_CB_CLUSTERING ) if ret: corners2 = corners / scale elif pattern_type.lower() == 'acircles': + # Workaround: CALIB_CB_CLUSTERING does not allow pattern flip ret, corners = cv.findCirclesGrid( - img_detection, patternSize=grid_size, flags=cv.CALIB_CB_ASYMMETRIC_GRID + img_detection, patternSize=grid_size, flags=cv.CALIB_CB_ASYMMETRIC_GRID+cv.CALIB_CB_CLUSTERING ) if ret: corners2 = corners / scale