Programming Homework
P6: Feature Matching
Goal: Learn to implement feature matching of several local feature descriptors
Understand two keypoint matching methods: template matching and feature descriptor matching.
Implement the OpenCV feature matching method for 5 keypoint descriptors: SIFT, SURF, ORB, BRISK, FREAK.
Readings
Program and test images
Find the sample code of "Chapter 9 Describing and Matching Interest Points" by yourself.
The tests images of the book chapter, Notre-Dame Cathedral, are provided for you to download: image1, image2.
Write programs that can read test images and run the two feature matching methods by OpenCV.
You have to test your program by your images. You should take photos of an object with different scales and viewpoints.
Web Report
Create a web page with descriptions, explanation and pictures for your programs.
Requirements of the report page:
For each program code, you have to write 4 parts: (1) goal of this code, (2) theory and principle of the code, (3) code segment explanation, and (4) result comparison or analysis.
Theory explanation
(1) template matching,
(2) knn matching,
(3) radius matching,
(4) cross check,
(5) ratio test.
Code explanation
You have to explain at least two important OpenCV methods: cv::matchTemplate function and cv::BFMatcher class. Note that the cv::BFMatcher class has three match functions: match(), knnMatch() and radiusMatch().
You have to explain the most important code segments in your program.
Experiments
Use the Notre-Dame images and your images to run your programs.
Change parameters of algorithm's functions to get different result images.
Compare and discuss the result images, and explain why the change of parameters can produce different results.
Submit your web address by Microsoft Teams.