.. _Table-Of-Content-Feature2D:

*feature2d* module. 2D Features framework
-----------------------------------------------------------

Learn about how to use the feature points  detectors, descriptors and matching framework found inside OpenCV.

.. include:: ../../definitions/tocDefinitions.rst

+
  .. tabularcolumns:: m{100pt} m{300pt}
  .. cssclass:: toctableopencv

  ===================== ==============================================
   |Harris|             **Title:** :ref:`harris_detector`

                        *Compatibility:* > OpenCV 2.0

                        *Author:* |Author_AnaH|

                        Why is it a good idea to track corners? We learn to use the Harris method to detect corners

  ===================== ==============================================

  .. |Harris| image:: images/trackingmotion/Harris_Detector_Cover.jpg
                   :height: 90pt
                   :width:  90pt


+
  .. tabularcolumns:: m{100pt} m{300pt}
  .. cssclass:: toctableopencv

  ===================== ==============================================
   |ShiTomasi|          **Title:** :ref:`good_features_to_track`

                        *Compatibility:* > OpenCV 2.0

                        *Author:* |Author_AnaH|

                        Where we use an improved method to detect corners more accuratelyI

  ===================== ==============================================

  .. |ShiTomasi| image:: images/trackingmotion/Shi_Tomasi_Detector_Cover.jpg
                      :height: 90pt
                      :width:  90pt


+
  .. tabularcolumns:: m{100pt} m{300pt}
  .. cssclass:: toctableopencv

  ===================== ==============================================
   |GenericCorner|      **Title:** :ref:`generic_corner_detector`

                        *Compatibility:* > OpenCV 2.0

                        *Author:* |Author_AnaH|

                        Here you will learn how to use OpenCV functions to make your personalized corner detector!

  ===================== ==============================================

  .. |GenericCorner| image:: images/trackingmotion/Generic_Corner_Detector_Cover.jpg
                          :height: 90pt
                          :width:  90pt


+
  .. tabularcolumns:: m{100pt} m{300pt}
  .. cssclass:: toctableopencv

  ===================== ==============================================
   |Subpixel|           **Title:** :ref:`corner_subpixeles`

                        *Compatibility:* > OpenCV 2.0

                        *Author:* |Author_AnaH|

                        Is pixel resolution enough? Here we learn a simple method to improve our accuracy.

  ===================== ==============================================

  .. |Subpixel| image:: images/trackingmotion/Corner_Subpixeles_Cover.jpg
                     :height: 90pt
                     :width:  90pt

+
  .. tabularcolumns:: m{100pt} m{300pt}
  .. cssclass:: toctableopencv

  ===================== ==============================================
   |FeatureDetect|      **Title:** :ref:`feature_detection`

                        *Compatibility:* > OpenCV 2.0

                        *Author:* |Author_AnaH|

                        In this tutorial, you will use *features2d* to detect interest points.

  ===================== ==============================================

  .. |FeatureDetect| image:: images/Feature_Detection_Tutorial_Cover.jpg
                     :height: 90pt
                     :width:  90pt


+
  .. tabularcolumns:: m{100pt} m{300pt}
  .. cssclass:: toctableopencv

  ===================== ==============================================
   |FeatureDescript|    **Title:** :ref:`feature_description`

                        *Compatibility:* > OpenCV 2.0

                        *Author:* |Author_AnaH|

                        In this tutorial, you will use *features2d* to calculate feature vectors.

  ===================== ==============================================

  .. |FeatureDescript| image:: images/Feature_Description_Tutorial_Cover.jpg
                       :height: 90pt
                       :width:  90pt

+
  .. tabularcolumns:: m{100pt} m{300pt}
  .. cssclass:: toctableopencv

  ===================== ==============================================
   |FeatureFlann|       **Title:** :ref:`feature_flann_matcher`

                        *Compatibility:* > OpenCV 2.0

                        *Author:* |Author_AnaH|

                        In this tutorial, you will use the FLANN library to make a fast matching.

  ===================== ==============================================

  .. |FeatureFlann| image:: images/Feature_Flann_Matcher_Tutorial_Cover.jpg
                    :height: 90pt
                    :width:  90pt

+
  .. tabularcolumns:: m{100pt} m{300pt}
  .. cssclass:: toctableopencv

  ===================== ==============================================
   |FeatureHomo|        **Title:** :ref:`feature_homography`

                        *Compatibility:* > OpenCV 2.0

                        *Author:* |Author_AnaH|

                        In this tutorial, you will use *features2d* and *calib3d* to detect an object in a scene.

  ===================== ==============================================

  .. |FeatureHomo| image:: images/Feature_Homography_Tutorial_Cover.jpg
                   :height: 90pt
                   :width:  90pt


+
  .. tabularcolumns:: m{100pt} m{300pt}
  .. cssclass:: toctableopencv

  ===================== ==============================================
   |DetectPlanar|       **Title:** :ref:`detectionOfPlanarObjects`

                        *Compatibility:* > OpenCV 2.0

                        *Author:* |Author_VictorE|

                        You will use *features2d* and *calib3d* modules for detecting known planar objects in scenes.

  ===================== ==============================================

  .. |DetectPlanar| image:: images/detection_of_planar_objects.png
                     :height: 90pt
                     :width:  90pt

+
  .. tabularcolumns:: m{100pt} m{300pt}
  .. cssclass:: toctableopencv

  ===================== ==============================================
   |AkazeMatch|         **Title:** :ref:`akazeMatching`

                        *Compatibility:* > OpenCV 3.0

                        *Author:* Fedor Morozov

                        Using *AKAZE* local features to find correspondence between two images.

  ===================== ==============================================

  .. |AkazeMatch| image:: images/AKAZE_Match_Tutorial_Cover.png
                     :height: 90pt
                     :width:  90pt

  ===================== ==============================================
   |AkazeTracking|         **Title:** :ref:`akazeTracking`

                           *Compatibility:* > OpenCV 3.0

                           *Author:* Fedor Morozov

                           Using *AKAZE* and *ORB* for planar object tracking.

  ===================== ==============================================

  .. |AkazeTracking| image:: images/AKAZE_Tracking_Tutorial_Cover.png
                     :height: 90pt
                     :width:  90pt

.. raw:: latex

   \pagebreak

.. toctree::
   :hidden:

   ../feature_description/feature_description
   ../trackingmotion/harris_detector/harris_detector
   ../feature_flann_matcher/feature_flann_matcher
   ../feature_homography/feature_homography
   ../trackingmotion/good_features_to_track/good_features_to_track.rst
   ../trackingmotion/generic_corner_detector/generic_corner_detector
   ../trackingmotion/corner_subpixeles/corner_subpixeles
   ../feature_detection/feature_detection
   ../feature_flann_matcher/feature_flann_matcher
   ../feature_homography/feature_homography
   ../detection_of_planar_objects/detection_of_planar_objects
   ../akaze_matching/akaze_matching
   ../akaze_tracking/akaze_tracking
