Basic Information
- Course Code: CS 663
- Course Name: Fundamentals of Digital Image Processing
- Course Offered In: 2023-‘24
- Semester Season: Autumn
- Instructors: Ajit Rajwade
- Prerequisites: There are no prerequisites but a basic understanding of signal processing and linear algebra could be helpful
- Difficulty (1 being easy and 5 being tough): 3
Course Content
The course started with an introduction to basic motion models and their representation using matrices, MSE and control point-based image alignment along with histogram specification models, the use of joint entropy and normalized cross-correlation for image alignment and an overview of image warping and interpolation. The following topics focused on image enhancement, an introduction to different types of filtering techniques like spatial, bilateral and derivative filters, edge and corner detection and an introduction to Hough transform. Image segmentation was introduced next for which we were taught the K-means clustering algorithm and the mean shift algorithm. The next segment of the course was based mainly on Fourier analysis where topics such as convolution, correlation, Discrete Fourier Transform (DFT), discrete circular convolution, Fast Fourier Transform (FFT) and frequency domain filtering were touched upon. The Principal Component Analysis (PCA) algorithm was taught in detail followed by PCA based face recognition and singular value decomposition (SVD). The course then moved on to image restoration techniques and the concept of the Wiener filter and PCA based denoising along with an introduction to various blur models. The course wrapped up with image and video compression, an overview of JPEG and MPEG and colour image processing.
The detailed course content can also be found on the course website: https://www.cse.iitb.ac.in/~ajitvr/CS663_Fall2023/
Feedback on Lectures
The lectures were very engaging and the professor encouraged class interaction in order to make the topics more interesting. The lecture slides were quite elaborate and self explanatory and covered the topics in great detail. The professor ensured that students who were new to MATLAB got all the help that they would need by executing certain code blocks during the lectures and by also uploading some MATLAB examples on the course website. Although the lectures were slightly fast paced, they were easy to follow and the professor was quite enthusiastic about the knowledge that the students would gain from the course.
Feedback on Evaluations
The course consisted of 5 assignments having a 40% weightage, a midsem of 20% weightage, an endsem of 25% weightage and a course project of 15% weightage. The course required us to make teams of at most 3 for doing the assignments and the course project. There were 5 assignments in total and consisted of questions pertaining to the topics covered and were both theory and programming based. They were of moderate to high difficulty level and required sufficient effort, especially in the case of the assignments towards the latter half of the course. There were no quizzes but the assignments were structured in such a manner that the learning factor was high and were quite interesting to solve. The midsem and endsem were relatively easier compared to the assignments and were quite conceptual and a thorough grasp of the concepts covered in the slides was essential. The course project required us to implement a research paper. The topics were uploaded on the course website and the teams were supposed to choose a particular topic and the corresponding research paper and submit the project proposal. The submission and project viva happened after the end semester examination. The course project provided an insight into the practical applications of image processing.
Study Material and Resources
Main recommended textbook: “Digital Image Processing” by Rafael C.Gonzalez and Richard Woods, 3rd edition The slides provided by the professor were also quite sufficient and covered the topics in a lot of depth.
Follow-up Courses
Some follow-up courses are: CS754 (Advanced Image Processing), CS736 (Medical Image Computing), CS763 (Computer Vision)
Final Takeaway
The wide range of topics covered in the course helps in enhancing the students’ knowledge of not only image processing but also of signal processing, linear algebra and a basic understanding of a few ML techniques. The course provides an excellent insight into the domain of image processing and I would highly recommend taking this course if you wish to explore this domain in a very well structured and elaborate manner.