@@ -1443,7 +1443,7 @@ void refineDetectedMarkers(InputArray _image, const Ptr<Board> &_board,
14431443 _convertToGrey (_image, grey);
14441444
14451445 // vector of final detected marker corners and ids
1446- vector< Mat > finalAcceptedCorners;
1446+ vector<vector<Point2f> > finalAcceptedCorners;
14471447 vector< int > finalAcceptedIds;
14481448 // fill with the current markers
14491449 finalAcceptedCorners.resize (_detectedCorners.total ());
@@ -1554,38 +1554,18 @@ void refineDetectedMarkers(InputArray _image, const Ptr<Board> &_board,
15541554
15551555 // parse output
15561556 if (finalAcceptedIds.size () != _detectedIds.total ()) {
1557- _detectedCorners.clear ();
1558- _detectedIds.clear ();
1559-
15601557 // parse output
15611558 Mat (finalAcceptedIds).copyTo (_detectedIds);
1562-
1563- _detectedCorners.create ((int )finalAcceptedCorners.size (), 1 , CV_32FC2);
1564- for (unsigned int i = 0 ; i < finalAcceptedCorners.size (); i++) {
1565- _detectedCorners.create (4 , 1 , CV_32FC2, i, true );
1566- for (int j = 0 ; j < 4 ; j++) {
1567- _detectedCorners.getMat (i).ptr < Point2f >()[j] =
1568- finalAcceptedCorners[i].ptr < Point2f >()[j];
1569- }
1570- }
1559+ _copyVector2Output (finalAcceptedCorners, _detectedCorners);
15711560
15721561 // recalculate _rejectedCorners based on alreadyIdentified
1573- vector< Mat > finalRejected;
1562+ vector<vector<Point2f> > finalRejected;
15741563 for (unsigned int i = 0 ; i < alreadyIdentified.size (); i++) {
15751564 if (!alreadyIdentified[i]) {
15761565 finalRejected.push_back (_rejectedCorners.getMat (i).clone ());
15771566 }
15781567 }
1579-
1580- _rejectedCorners.clear ();
1581- _rejectedCorners.create ((int )finalRejected.size (), 1 , CV_32FC2);
1582- for (unsigned int i = 0 ; i < finalRejected.size (); i++) {
1583- _rejectedCorners.create (4 , 1 , CV_32FC2, i, true );
1584- for (int j = 0 ; j < 4 ; j++) {
1585- _rejectedCorners.getMat (i).ptr < Point2f >()[j] =
1586- finalRejected[i].ptr < Point2f >()[j];
1587- }
1588- }
1568+ _copyVector2Output (finalRejected, _rejectedCorners);
15891569
15901570 if (_recoveredIdxs.needed ()) {
15911571 Mat (recoveredIdxs).copyTo (_recoveredIdxs);
0 commit comments