@@ -82,6 +82,7 @@ void CV_ArucoBoardPose::run(int) {
8282 cameraMatrix.at < double >(1 , 2 ) = imgSize.height / 2 ;
8383 Mat distCoeffs (5 , 1 , CV_64FC1, Scalar::all (0 ));
8484 const int sizeX = 3 , sizeY = 3 ;
85+ aruco::DetectorParameters detectorParameters = detector.getDetectorParameters ();
8586
8687 // for different perspectives
8788 for (double distance = 0.2 ; distance <= 0.4 ; distance += 0.15 ) {
@@ -98,7 +99,8 @@ void CV_ArucoBoardPose::run(int) {
9899 imgSize, markerBorder);
99100 vector<vector<Point2f> > corners;
100101 vector<int > ids;
101- detector.getDetectorParameters ().markerBorderBits = markerBorder;
102+ detectorParameters.markerBorderBits = markerBorder;
103+ detector.setDetectorParameters (detectorParameters);
102104 detector.detectMarkers (img, corners, ids);
103105
104106 ASSERT_EQ (ids.size (), gridboard->getIds ().size ());
@@ -189,6 +191,7 @@ void CV_ArucoRefine::run(int) {
189191 cameraMatrix.at < double >(0 , 2 ) = imgSize.width / 2 ;
190192 cameraMatrix.at < double >(1 , 2 ) = imgSize.height / 2 ;
191193 Mat distCoeffs (5 , 1 , CV_64FC1, Scalar::all (0 ));
194+ aruco::DetectorParameters detectorParameters = detector.getDetectorParameters ();
192195
193196 // for different perspectives
194197 for (double distance = 0.2 ; distance <= 0.4 ; distance += 0.2 ) {
@@ -207,7 +210,8 @@ void CV_ArucoRefine::run(int) {
207210 // detect markers
208211 vector<vector<Point2f> > corners, rejected;
209212 vector<int > ids;
210- detector.getDetectorParameters ().markerBorderBits = markerBorder;
213+ detectorParameters.markerBorderBits = markerBorder;
214+ detector.setDetectorParameters (detectorParameters);
211215 detector.detectMarkers (img, corners, ids, rejected);
212216
213217 // remove a marker from detection
0 commit comments