opencv/doc/tutorials/features2d/feature_description/feature_description.markdown
Alexander Alekhin 45dd575ed2 Merge remote-tracking branch 'upstream/3.4' into merge-3.4
Revert "documentation: avoid links to 'master' branch from 3.4 maintenance branch"
This reverts commit 9ba9358ecb.

Revert "documentation: avoid links to 'master' branch from 3.4 maintenance branch (2)"
This reverts commit f185802489.
2018-06-04 19:26:10 +03:00

1.9 KiB

Feature Description

Goal

In this tutorial you will learn how to:

  • Use the @ref cv::DescriptorExtractor interface in order to find the feature vector correspondent to the keypoints. Specifically:
    • Use cv::xfeatures2d::SURF and its function cv::xfeatures2d::SURF::compute to perform the required calculations.
    • Use a @ref cv::DescriptorMatcher to match the features vector
    • Use the function @ref cv::drawMatches to draw the detected matches.

\warning You need the OpenCV contrib modules to be able to use the SURF features (alternatives are ORB, KAZE, ... features).

Theory

Code

@add_toggle_cpp This tutorial code's is shown lines below. You can also download it from here @include samples/cpp/tutorial_code/features2D/feature_description/SURF_matching_Demo.cpp @end_toggle

@add_toggle_java This tutorial code's is shown lines below. You can also download it from here @include samples/java/tutorial_code/features2D/feature_description/SURFMatchingDemo.java @end_toggle

@add_toggle_python This tutorial code's is shown lines below. You can also download it from here @include samples/python/tutorial_code/features2D/feature_description/SURF_matching_Demo.py @end_toggle

Explanation

Result

Here is the result after applying the BruteForce matcher between the two original images: