-28
opencv
computation_error
ai_generated
true
cv::error: (-28:Insufficient number of valid points) in function 'cv::findHomography'
ID: opencv/feature-matching-insufficient-matches
82%Fix Rate
88%Confidence
1Evidence
2024-03-15First Seen
Version Compatibility
| Version | Status | Introduced | Deprecated | Notes |
|---|---|---|---|---|
| 4.8.0 | active | — | — | — |
| 4.9.0 | active | — | — | — |
| 4.10.0 | active | — | — | — |
Root Cause
The number of matched feature points between two images is below the minimum required for homography estimation.
generic中文
两幅图像之间匹配的特征点数量低于单应性矩阵估计所需的最小值。
Official Documentation
https://docs.opencv.org/4.x/d9/d0c/group__calib3d.html#ga4abc2ece9fab9398f2e560d53c8c9780Workarounds
-
85% success Increase the number of keypoints detected by using SIFT with nfeatures=5000 and then apply ratio test (Lowe's ratio < 0.75) to filter matches.
Increase the number of keypoints detected by using SIFT with nfeatures=5000 and then apply ratio test (Lowe's ratio < 0.75) to filter matches.
-
80% success Use FLANN-based matcher with k=2 and then apply cross-check filtering (e.g., cv::BFMatcher with crossCheck=true) to retain only robust matches.
Use FLANN-based matcher with k=2 and then apply cross-check filtering (e.g., cv::BFMatcher with crossCheck=true) to retain only robust matches.
中文步骤
Increase the number of keypoints detected by using SIFT with nfeatures=5000 and then apply ratio test (Lowe's ratio < 0.75) to filter matches.
Use FLANN-based matcher with k=2 and then apply cross-check filtering (e.g., cv::BFMatcher with crossCheck=true) to retain only robust matches.
Dead Ends
Common approaches that don't work:
-
Lowering the RANSAC reprojection threshold to 1.0 to force more inliers
85% fail
Excessively low threshold rejects valid matches, reducing inlier count further.
-
Using ORB detector with default parameters without tuning
75% fail
ORB may generate too few or low-quality matches for scenes with low texture or large viewpoint changes.