Use initial quads corners in ChessBoardDetector::findQuadNeighbors #25195
+11
−9
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Pull Request Readiness Checklist
Idea is to make quad neighbors finding more simple (for understanding and debugging) and deterministic
And for that use initial quads corners, now they can be updated in
https://github.com/opencv/opencv/blob/4.x/modules/calib3d/src/calibinit.cpp#L1740
and then affect following finding, e.g. in
https://github.com/opencv/opencv/blob/4.x/modules/calib3d/src/calibinit.cpp#L1698
Before #24605 we also could use updated corners in nearest neighbors, but now we use k-d tree for it with copy of initial corners and what we use updated corners in following part of algorithm can be considered as something like logic divergence
I tested this PR with benchmark
There are no any changes in detected chessboards number:
See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request
Patch to opencv_extra has the same branch name.