passend habe ich versucht, ORB.My Code gute Spiele zu finden, ist wie folgt:Lösung für OpenCV Fehler: Nicht unterstütztes Format oder eine Kombination von Format - wenn ORB-Funktionen mit FlannBasedMatcher
Ptr<FeatureDetector> detector = ORB::create();
Mat descriptors_img1, descriptors_img2;
//-- Step 2: Calculate descriptors (feature vectors)
detector->detect(img1, kp1,descriptors_img1);
detector->detect(img2, kp2,descriptors_img2);
Ptr<DescriptorExtractor> extractor = ORB::create();
extractor->compute(img1, kp1, descriptors_img1);
extractor->compute(img2, kp2, descriptors_img2);
//-- Step 3: Matching descriptor vectors using FLANN matcher
descriptors_img1.convertTo(descriptors_img1, CV_32F);
descriptors_img2.convertTo(descriptors_img2, CV_32F);
FlannBasedMatcher matcher;
std::vector<DMatch> matches;
matcher.match(descriptors_img1,descriptors_img2,matches);
double max_dist = 0; double min_dist = 100;
//-- Quick calculation of max and min distances between keypoints
for(int i = 0; i < descriptors_img1.rows; i++)
{
double dist = matches[i].distance;
if(dist < min_dist)
min_dist = dist;
if(dist > max_dist)
max_dist = dist;
}
printf("-- Max dist : %f \n", max_dist);
printf("-- Min dist : %f \n", min_dist);
//-- Draw only "good" matches (i.e. whose distance is less than 3*min_dist)
std::vector<DMatch> good_matches;
for(int i = 0; i < descriptors_img1.rows; i++)
{
if(matches[i].distance < 3*min_dist)
{
good_matches.push_back(matches[i]);
}
}
Mat img_matches;
drawMatches(img1,kp1,img2,kp2,good_matches,img_matches,Scalar::all(-1),
Scalar::all(-1),vector<char>(),DrawMatchesFlags::NOT_DRAW_SINGLE_POINTS);
//-- Show detected matches
imshow("Good Matches", img_matches);
Aber wenn ich laufe, mich erhalten Fehler Spruch:
OpenCV Error: Unsupported format or combination of formats (type=0 ) in buildIndex_, file /home/opencv-3.2.0/modules/flann/src/miniflann.cpp, line 315 terminate called after throwing an instance of 'cv::Exception' what(): /home/opencv-3.2.0/modules/flann/src/miniflann.cpp:315: error: (-210) type=0 in function buildIndex_
ich ähnliche Fragen gesucht, aber ich habe nicht meine answer.After Debuggen finde ich kam, dass Fehler zu wissen, bei
istmatcher.match(....);
Bitte helfen Sie mir bei der Beseitigung. Vielen Dank im Voraus
Bitte fügen Sie die Fehlermeldung in Ihre Frage ein. –
Nun habe ich bearbeitet und die Fehlermeldung – Anirudh
Ich habe Ihren Code mit OpenCV3.2 und VC14 getestet, aber es hat gut funktioniert. Sind Sie sicher, dass Sie immer noch diesen Fehler mit dem von Ihnen bereitgestellten Code haben? –