opencv/doc/tutorials/features2d/feature_description/feature_description.markdown

62 lines
2.1 KiB
Markdown
Raw Normal View History

2014-11-27 20:39:05 +08:00
Feature Description {#tutorial_feature_description}
===================
2020-12-08 00:13:54 +08:00
@tableofcontents
@prev_tutorial{tutorial_feature_detection}
@next_tutorial{tutorial_feature_flann_matcher}
2020-12-05 06:46:00 +08:00
| | |
| -: | :- |
| Original author | Ana Huamán |
| Compatibility | OpenCV >= 3.0 |
2014-11-27 20:39:05 +08:00
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
2014-11-27 20:39:05 +08:00
required calculations.
- Use a @ref cv::DescriptorMatcher to match the features vector
2014-11-27 20:39:05 +08:00
- Use the function @ref cv::drawMatches to draw the detected matches.
\warning You need the <a href="https://github.com/opencv/opencv_contrib">OpenCV contrib modules</a> to be able to use the SURF features
(alternatives are ORB, KAZE, ... features).
2014-11-27 20:39:05 +08:00
Theory
------
Code
----
@add_toggle_cpp
This tutorial code's is shown lines below. You can also download it from
2021-12-31 00:23:27 +08:00
[here](https://github.com/opencv/opencv/tree/5.x/samples/cpp/tutorial_code/features2D/feature_description/SURF_matching_Demo.cpp)
@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
2021-12-31 00:23:27 +08:00
[here](https://github.com/opencv/opencv/tree/5.x/samples/java/tutorial_code/features2D/feature_description/SURFMatchingDemo.java)
@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
2021-12-31 00:23:27 +08:00
[here](https://github.com/opencv/opencv/tree/5.x/samples/python/tutorial_code/features2D/feature_description/SURF_matching_Demo.py)
@include samples/python/tutorial_code/features2D/feature_description/SURF_matching_Demo.py
@end_toggle
2014-11-28 00:54:13 +08:00
2014-11-27 20:39:05 +08:00
Explanation
-----------
Result
------
2014-11-28 00:54:13 +08:00
Here is the result after applying the BruteForce matcher between the two original images:
2014-11-27 20:39:05 +08:00
2014-11-28 21:21:28 +08:00
![](images/Feature_Description_BruteForce_Result.jpg)