wie verbessern orb feature matching?
Ich versuche mich zu registrieren, beiden binären Bilder. Ich verwendete opencv-orb-Detektor und matcher zu generieren und match-feature-Punkte. Allerdings werden die übereinstimmenden Ergebnis, sieht schlecht aus. Kann mir jemand sagen, warum und wie zu verbessern? Danke.
Hier sind die Bilder und das matching-Ergebnis.
Hier ist der code
OrbFeatureDetector detector; //OrbFeatureDetector detector;SurfFeatureDetector
vector<KeyPoint> keypoints1;
detector.detect(im_edge1, keypoints1);
vector<KeyPoint> keypoints2;
detector.detect(im_edge2, keypoints2);
OrbDescriptorExtractor extractor; //OrbDescriptorExtractor extractor; SurfDescriptorExtractor extractor;
Mat descriptors_1, descriptors_2;
extractor.compute( im_edge1, keypoints1, descriptors_1 );
extractor.compute( im_edge2, keypoints2, descriptors_2 );
//-- Step 3: Matching descriptor vectors with a brute force matcher
BFMatcher matcher(NORM_L2, true); //BFMatcher matcher(NORM_L2);
vector< DMatch> matches;
matcher.match(descriptors_1, descriptors_2, matches);
vector< DMatch > good_matches;
vector<Point2f> featurePoints1;
vector<Point2f> featurePoints2;
for(int i=0; i<int(matches.size()); i++){
good_matches.push_back(matches[i]);
}
//-- Draw only "good" matches
Mat img_matches;
imwrite("img_matches_orb.bmp", img_matches);
- können Sie uns einige code?
- Hallo tfv, ich habe meine code.
- Sie können track-best und second-best-match. Wenn beide haben ähnliche Qualität, die Sie cant entscheiden, so dass Sie fallen würde passen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einige Antworten gibt, die hilfreich sein können:
Verbesserung der matching von feature-Punkte mit OpenCV
Es ist für SIFT-Deskriptor, aber wir können auch verwenden Sie für die ORB-matching:)
ORB
Deskriptoren sind, im Gegensatz zuSURF
-, Binär-Deskriptoren. DieHAMMING
Entfernung ist geeignet für binäre Deskriptoren Vergleich. VerwendenNORM_HAMMING
beim initialisieren Sie IhreBFMatcher
.