Open Source Computer Vision Library https://opencv.org/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

2.0 KiB

Features2D + Homography to find a known object

@prev_tutorial{tutorial_feature_flann_matcher} @next_tutorial{tutorial_detection_of_planar_objects}

Goal

In this tutorial you will learn how to:

  • Use the function @ref cv::findHomography to find the transform between matched keypoints.
  • Use the function @ref cv::perspectiveTransform to map the points.

\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_homography/SURF_FLANN_matching_homography_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_homography/SURFFLANNMatchingHomographyDemo.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_homography/SURF_FLANN_matching_homography_Demo.py @end_toggle

Explanation

Result

  • And here is the result for the detected object (highlighted in green). Note that since the homography is estimated with a RANSAC approach, detected false matches will not impact the homography calculation.