Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 63ad15c

Browse filesBrowse files
committed
Refactor ArucoDetector::ArucoDetectorImpl::filterTooCloseCandidates
1 parent b5f5540 commit 63ad15c
Copy full SHA for 63ad15c

File tree

Expand file treeCollapse file tree

1 file changed

+8
-4
lines changed
Filter options
Expand file treeCollapse file tree

1 file changed

+8
-4
lines changed

‎modules/objdetect/src/aruco/aruco_detector.cpp

Copy file name to clipboardExpand all lines: modules/objdetect/src/aruco/aruco_detector.cpp
+8-4Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -687,7 +687,6 @@ struct ArucoDetector::ArucoDetectorImpl {
687687
vector<vector<size_t> > groupedCandidates;
688688
vector<bool> isSelectedContours(candidateTree.size(), true);
689689

690-
size_t countSelectedContours = 0ull;
691690
for (size_t i = 0ull; i < candidateTree.size(); i++) {
692691
for (size_t j = i + 1ull; j < candidateTree.size(); j++) {
693692
float minDist = getAverageDistance(candidateTree[i].corners, candidateTree[j].corners);
@@ -720,7 +719,12 @@ struct ArucoDetector::ArucoDetectorImpl {
720719
}
721720
}
722721
}
723-
countSelectedContours += isSelectedContours[i];
722+
// group of one candidate
723+
if(isSelectedContours[i]) {
724+
isSelectedContours[i] = false;
725+
groupId[i] = (int)groupedCandidates.size();
726+
groupedCandidates.push_back({i});
727+
}
724728
}
725729

726730
for (vector<size_t>& grouped : groupedCandidates) {
@@ -743,8 +747,8 @@ struct ArucoDetector::ArucoDetectorImpl {
743747
}
744748
}
745749

746-
vector<MarkerCandidateTree> selectedCandidates(countSelectedContours + groupedCandidates.size());
747-
countSelectedContours = 0ull;
750+
vector<MarkerCandidateTree> selectedCandidates(groupedCandidates.size());
751+
size_t countSelectedContours = 0ull;
748752
for (size_t i = 0ull; i < candidateTree.size(); i++) {
749753
if (isSelectedContours[i]) {
750754
selectedCandidates[countSelectedContours] = std::move(candidateTree[i]);

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.