From: Victor Erukhimov Date: Sat, 12 Jun 2010 05:45:28 +0000 (+0000) Subject: Added a simple sample for descriptor matching X-Git-Tag: accepted/2.0/20130307.220821~4873 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2b116981b7d4881a6211ce482be4b21ad32ff635;p=profile%2Fivi%2Fopencv.git Added a simple sample for descriptor matching --- diff --git a/samples/cpp/matcher_simple.cpp b/samples/cpp/matcher_simple.cpp new file mode 100644 index 0000000..74c791b --- /dev/null +++ b/samples/cpp/matcher_simple.cpp @@ -0,0 +1,50 @@ +#include +#include +#include +#include + +using namespace cv; + +int main(int argc, char** argv) +{ + if(argc != 3) + { + printf("Usage: matches_simple \n"); + return -1; + } + + Mat img1 = imread(argv[1]); + Mat img2 = imread(argv[2]); + if(img1.empty() || img2.empty()) + { + printf("Can't read one of the images\n"); + return -1; + } + + // detecting keypoints + SurfFeatureDetector detector(400); + vector keypoints1, keypoints2; + detector.detect(img1, keypoints1); + detector.detect(img2, keypoints2); + + // computing descriptors + SurfDescriptorExtractor extractor; + Mat descriptors1, descriptors2; + extractor.compute(img1, keypoints1, descriptors1); + extractor.compute(img2, keypoints2, descriptors2); + + // matching descriptors + BruteForceMatcher > matcher; + vector matches; + matcher.add(descriptors1); + matcher.match(descriptors2, matches); + + // drawing the results + namedWindow("matches", 1); + Mat img_matches; + drawMatches(img1, img2, keypoints1, keypoints2, matches, vector(), img_matches); + imshow("matches", img_matches); + waitKey(0); + + return 0; +}