Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: THEend8_
COMP9517: Computer Vision
Objective: This lab revisits important concepts covered in the Week 3 lectures and aims to
make you familiar with implementing specific algorithms.
Software: You are required to use OpenCV 3+ with Python 3+ and submit your code as a
Jupyter notebook (see coding and submission requirements below). In the tutor consultation
session this week, you can ask any questions you may have about this lab.
Materials: Pictures to be used in this lab are to be captured by yourself. Use your smartphone
or digital camera to take the pictures required for the tasks below.
Submission: All code and requested results are assessable after the lab. Submit your source
code as a Jupyter notebook (.ipynb file) that includes all output and answers to all questions
(see coding requirements at the end of this document) by the above deadline. The submission
link will be announced in due time.
Preparation: Choose any scene with clear structures (for example buildings) on campus or in
your neighbourhood and take two pictures of it. The two pictures should have some overlap
but neither of them should capture the whole scene. Below is an example of two such pictures,
but please use your own for this lab. To save disk space, feel free to downscale the pictures
(for example to 1,000–1,500 pixels wide) before carrying out the tasks below.
The lab files should be submitted online.
Instructions for submission will be posted closer to the deadline.
Deadline for submission is Week 4, Friday 21 June 2024, 18:00:00.
Example Picture 1 Example Picture 2
Task 1 (0.5 mark)
Compute the SIFT features of the two pictures.
a) Extract the SIFT features with default parameters and show the keypoints on the pictures.
Hint: Use existing library functions for this (see suggestions at the end).
b) To achieve better visualization of the keypoints, reduce their number to include only the
~20 most prominent ones. Hint: Vary the parameter contrastThreshold or nfeatures.
Show the results obtained in a) and b) in your Jupyter notebook (like the examples below) and
include a brief description of the approach you used for b).
Task 2 (1 mark)
Recompute the SIFT features for the following processed versions of the two pictures:
a) Scaled with a factor of 120 percent.
b) Rotated clockwise by 60 degrees.
c) Contaminated with salt and pepper noise. Hint: The scikit-image library has a utility
function to add random noise of various types to images.
For each of these three versions of the pictures, extract the SIFT features and show the
keypoints on the processed pictures using the same parameter settings as for Task 1 (for the
reduced number of keypoints).
Inspect the keypoints visually: Are the keypoints of the processed pictures roughly the same
as those of the originals? What does this say about the robustness of SIFT in each case? To
which of the three types of processing is SIFT most robust?
Show the results obtained for each of a), b), and c) in your Jupyter notebook and include your
answers to the questions stated above.