Ich versuche Schlüsselpunkte mit ORB zu erkennen, alles ist in Ordnung, bis ich zu Opencv 2.4.9 wechselte.ORB erkennt keyPoints nicht in opencv 2.4.9
Firts, scheint es, dass die Anzahl der Tasten decresed und für einige Bilder sind keine keypoints erkannt:
Dies ist mein Code mit zwei Version kompiliert: (2.3.1 und 2.4.9)
#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/features2d/features2d.hpp>
using namespace cv;
int main(int argc, char **argv){
Mat img = imread(argv[1]);
std::vector<KeyPoint> kp;
OrbFeatureDetector detector;
detector.detect(img, kp);
std::cout << "Found " << kp.size() << " Keypoints " << std::endl;
Mat out;
drawKeypoints(img, kp, out, Scalar::all(255));
imshow("Kpts", out);
waitKey(0);
return 0;
}
Ergebnis: 2.3.1: gefunden 152 Eigenpunkte
2,4. 9: Gefunden 0 Eigenpunkte
ich auch mit einem anderen ORB Constructor getestet, aber ich habe das gleiche Ergebnis, keine kpts. die gleichen Werte wie in Konstruktor 2.3.1 Standard-Konstruktor: 2.4.9 benutzerdefinierte constr:
#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/features2d/features2d.hpp>
using namespace cv;
int main(int argc, char **argv){
Mat img = imread(argv[1]);
std::vector<KeyPoint> kp;
// default in 2.4.9 is : ORB(700, 1.2f, 3, 31, 0);
OrbFeatureDetector detector(500, 1.2f, 8, 31, 0); // default values of 2.3.1
detector.detect(img, kp);
std::cout << "Found " << kp.size() << " Keypoints " << std::endl;
Mat out;
drawKeypoints(img, kp, out, Scalar::all(255));
imshow("Kpts", out);
waitKey(0);
return 0;
}
Haben Sie eine Ahnung, was passiert? Und wie kann ich es reparieren?
Vielen Dank.
Haben Sie irgendwelche Lösungen bekommen? –
Auf anderen Bildern haben Sie auch 0 Schlüsselpunkte gefunden? Oder nur weniger Keypoints als mit openCV 2.3.1? – Whysmerhill