Die Verwendung von FeatureDetector in OpenCV führt zu einer Zugriffsverletzung
Ich muss Feature Points in Stereobildern finden und zuordnen. Aus diesem Grund möchte ich die verschiedenen Feature Detection-Algorithmen vergleichen, die in OpenCV 2.4.5 unterstützt werden. indem Sie "SURF", "SIFT" usw. an die Funktion übergeben.
Das Code-Snippet:
#include "opencv2/opencv.hpp"
#include <opencv/highgui.h>
#include <opencv2/nonfree/features2d.hpp>
using namespace cv;
using namespace std;
...
void DisparityAnalysis::detectKeyPoints(Mat1b leftImageGrey, Mat1b rightImageGrey, string algorithmName)
{
Ptr<FeatureDetector> detector = FeatureDetector::create(algorithmName);
detector->detect(leftImageGrey, keypoints_1);
detector->detect(rightImageGrey, keypoints_2);
}
Der Fehler:
Unhandled exception at 0x770b15de in DisparityAnalysis.exe: 0xC0000005: Access violation reading location 0x00000000.
Ich habe bereits nach Lösungen gesucht und diese gefunden:Lesen von Zugriffsverletzungen in FeatureDetector OpenCV 2.4.5 Der Unterschied, den ich erkannt habe, ist, dass sie am Anfang cv :: initModule_nonfree () verwenden. Aber wenn ich es in meinen Code kopiere, wird es nicht kompiliert, weil die Kennung nicht gefunden wird. Irgendwelche Vorschläge?