Skip to content

Add ORB feature matching (rotation/scale/theme-robust template location)#341

Merged
JE-Chen merged 1 commit into
devfrom
feat/feature-match-batch
Jun 22, 2026
Merged

Add ORB feature matching (rotation/scale/theme-robust template location)#341
JE-Chen merged 1 commit into
devfrom
feat/feature-match-batch

Conversation

@JE-Chen

@JE-Chen JE-Chen commented Jun 22, 2026

Copy link
Copy Markdown
Member

Locate a target even when it is rotated, rescaled or re-themed — where pixel template matching (match_template / match_masked) fails because it correlates pixels.

  • feature_match (AC_feature_match): matches ORB keypoints (orientation-invariant binary descriptors) and fits a RANSAC homography through the geometrically consistent ones. Returns a FeatureMatch with the four projected corners, the center, the inliers count and an inlier-fraction score, or None below min_inliers.
  • Robust to rotation, scale and appearance change (light/dark theme, hover, reskin). ratio is Lowe's ratio-test cutoff; max_features caps the keypoint budget.
  • ORB border/patch sizes auto-scale down for icon-sized templates — OpenCV's defaults (31) reject every keypoint in a small template. Core OpenCV only (ORB + BFMatcher + findHomography; no contrib).
  • Injectable haystack (ndarray/path/PIL) → headless-testable on synthetic arrays (incl. a rotated-scene case). Wired through all 5 layers (core/facade/executor/MCP/Script Builder) + headless test + EN/Zh docs + WHATS_NEW. Qt-free.

@codacy-production

Copy link
Copy Markdown

Not up to standards ⛔

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

@JE-Chen JE-Chen merged commit 980a3a3 into dev Jun 22, 2026
15 of 16 checks passed
@JE-Chen JE-Chen deleted the feat/feature-match-batch branch June 22, 2026 20:05
@sonarqubecloud

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant