Implement BFMatcher and document AKAZE differences#79
Merged
Conversation
- Add BFMatcher and match_features usage examples to README - Add rustdoc examples to src/features2d/mod.rs - Update roadmap to remove completed milestones and add Milestone 7
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This pull request introduces a new feature matching visualization example and implements a set of drawing utilities for feature detection and matching in the
purecvlibrary. It also implementsBFMatcherandDMatchfor descriptor matching. The main changes include a new example demonstrating ORB feature matching and a newdraw.rsmodule for visualizing keypoints and matches, both with detailed documentation and LGPLv3+ licensing headers.New Example and Visualization Utilities
Example and Usage
examples/match_features.rsthat demonstrates ORB feature detection, extraction, matching (with mutual cross-check usingBFMatcher), and visualization. The example loadsexamples/data/graf.png(a stitched image), splits it down the middle, detects and matches features, draws the matches, and saves the result toexamples/data/out/graf_matches.png. Extensive documentation and usage instructions are included.examples/data/graf.pngas test data for the example.Feature Matching Infrastructure (
src/features2d/matcher.rs)BFMatcher(Brute-Force Matcher) with support forNormType(includingNormHammingfor binary descriptors) and optional cross-check for mutual consistency filtering.DMatchstruct to represent individual descriptor matches.BFMatcherimplements theDescriptorMatchertrait via thematch_descriptorsmethod.Drawing Utilities for Feature Visualization (
src/features2d/draw.rs)Introduced a new
draw.rsmodule implementing pixel-level drawing utilities:draw_keypointsfunction draws circles and orientation lines for detected keypoints.draw_matchesfunction visualizes matches between two images by drawing lines between corresponding keypoints. Supports random or fixed line colors; passingNonefor the unmatched-keypoints parameter suppresses their rendering.Module and Library Updates
src/features2d/mod.rsto expose the newdrawandmatchersubmodules and re-export their public API.src/lib.rsaccordingly.src/features2d/tests.rscovering the new functionality.