ORB ist nicht zu erkennen, Eckdaten in opencv 2.4.9

Ich versuche zu erkennen Eckdaten mit ORB ist alles in Ordnung, bis ich eingeschaltet, um Opencv 2.4.9.

Aufbauen, es scheint, dass die Anzahl der Schlüssel, decresed, und für einige Bilder, keine Eckdaten erkannt werden :

Dies ist mein code, kompiliert mit version zwei : (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 Eckdaten

ORB ist nicht zu erkennen, Eckdaten in opencv 2.4.9

2.4.9 :
Gefunden 0 Eckdaten

ORB ist nicht zu erkennen, Eckdaten in opencv 2.4.9

Habe ich auch getestet mit verschiedenen ORB-Konstruktor, aber ich bekomme das gleiche Ergebnis, keine KPts.
Das gleiche constuctor Werte wie in 2.3.1 Standard-Konstruktor :
2.4.9 benutzerdefinierte KONSTR :

#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 beheben ?

Danke.

  • Haben Sie irgendwelche Lösungen?
  • Auf anderen Bilder, die Sie gefunden 0 Eckdaten zu ? Oder einfach nur weniger Eckdaten als mit openCV 2.3.1 ?
InformationsquelleAutor rednaks | 2014-05-03
Schreibe einen Kommentar