Image Processing: Theory and Applications

How does a computer recognize features of an image, and identify them in another image? In this project course, we discuss the principles behind edge detection in digital images, building toward a simple image recognition program. We then consider the subject of the course project: facial recognition. How does a computer compare the image of a face to a library of known faces? Finally, we survey a number of imaging applications across Biology, Chemistry and Physics.

Please see Python Coding and Linear Algebra for background material we will quickly review to start the course.

Registration information. This course will be offered in Fall 2020. It will be listed on Aurora under the subject Science Interdisciplinary, course number SCI 2000. There are no prerequisites, but at least one of COMP 1012 or MATH 1300 is strongly recommended.

For more information, or if you would like to register for this course, please contact Dr. Jennifer Vaughan.

Expected Course Content

For the first eight weeks, we will study the Mathematics and Computer Science underlying image processing. Mathematical topics such as gradient vectors, eigenvalues and eigenvectors, and covariance matrices will be discussed. Computer Science techniques will be used to analyze and solve problems such as brightness analysis, sharpening, and edge detection.

Students will be expected to implement image processing algorithms using Python. This will include a number of assignments and a project. The assignments will form the foundations upon which the project will be built.


Class time will be given to work on the course project during weeks 9 – 12.

In class, we will study an elementary facial recognition algorithm that is suitable for use on simple, artificially generated images. The first step of the project will be to implement this algorithm.

How can this initial idea be refined to work on realistic images? Working in pairs, you will propose and implement an improvement to the basic algorithm, then design and run an experiment to test the effectiveness of your new algorithm on a library of photographs of faces.