Programming Homework
HWP6: Feature Matching
Goal: Learn to implement feature matching of several local feature descriptors
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
Readings
Program and test images
Program and test images
- Search 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
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 Google Classroom.