2017-09-13 3 views
0

Bitte freundlich mit mir, wie ich neu zu der openCV und Computer Vision bin. Ich versuche, die Match-Feature-Punkte aus zwei Bildern zur weiteren Verarbeitung zu bekommen. Ich habe den folgenden Code geschrieben, indem ich eine example eines SURF Feature Matching von FLANN, aber in ORB.ORB Feature passend zu FLANN in C++

hier ist der Code:

#include "opencv2/video/tracking.hpp" 
#include "opencv2/imgproc.hpp" 
#include "opencv2/videoio.hpp" 
#include "opencv2/highgui.hpp" 
#include "opencv2/features2D.hpp" 


using namespace cv; 
using namespace std; 



int main(int argc, char** argv) 
{ 
Mat im_left, im_right; 
Mat descriptor_1, descriptor_2; 

vector<KeyPoint> keypoints_1, keypoints_2; 

im_left = imread("im_left.png", IMREAD_GRAYSCALE); 
im_left = imread("im_right.png", IMREAD_GRAYSCALE); 

Ptr<ORB> detector = ORB::create(); 
vector<DMatch> matches; 
FlannBasedMatcher matcher; 
Ptr<DescriptorExtractor> extractor; 


detector->detect(im_right, keypoints_1, descriptor_1); 
detector->detect(im_left, keypoints_2, descriptor_2); 

matcher.match(descriptor_1, descriptor_2, matches); 

Mat img_match; 

drawMatches(im_left, keypoints_1, im_right, keypoints_2, matches, img_match); 
imshow("Matches", img_match); 



waitKey(10000); 
return 0; 
} 

Aber das löst eine Ausnahme Fehlermeldung, dass:

Unbehandelte Ausnahme bei 0x00007FF97D3B9E08 in Projekt1.exe: Microsoft C++ Ausnahme: cv :: Exception an Speicherplatz 0x0000009E5D4FE3B0. aufgetreten

Kann sein Code ist voller Unsinn, zu schätzen, wenn jemand mir helfen kann, dies zu lösen.

Wir danken Ihnen im Voraus!

+0

'using namespace std;' ist eine schlechte Angewohnheit, in zu erhalten und wenn Sie jetzt aufhören können, könnten Sie in der Zukunft viele Kopfschmerzen vermeiden. Das Präfix 'std ::' ist aus einem bestimmten Grund da: Es vermeidet Konflikte mit eigenen Klassen, Strukturen und Variablen. – tadman

+1

[Hier] (https://github.com/ahmetozlu/open_source_markerless_augmented_reality/wiki/Markerless-Augmented-Reality-Tutorial) ist das Tutorial für markerloses Augmented-Reality-Projekt (programmiert in C++). Dieses Projekt hat einen zukünftigen passenden Teil und mehr Dinge über den Bildvergleich, es kann für Sie hilfreich sein. [This] (https://www.youtube.com/watch?v=nPfR5ACrqu0) ist das Demo-Video des Projekts. – Ozlu

+0

Danke Olzu, Werde das überprüfen :) Vielen Dank nochmal! – Althaf

Antwort