CSI - 709: Algorithms in Image Processing

Purpose and Outline

This course is designed to be an introductory course for algorithms used in image processing. Topics to be covered include:

  1. Computer tools used in this class.
  2. Image Digitization
  3. Color Formats
  4. Image space transformations: shift, rotations, skew, R-Polar, Log-Polar, etc.
  5. Texture Recognition
  6. Shape Recognition
  7. Fourier Transforms, filters and correlations
  8. Applications in face recognition, fingerprint recognition, target recognition, medical images, etc.
  9. Special topics including: Decomposition, Pulse Images, Multi-Spectral Images, and current topics.

The list of topics will be adjusted after the first class session. Many students have research/thesis/dissertation projects and this course can be modified to address issues that are more useful to the students.

Student Prerequisites

Students should be very comfortable with linear algebra and complex-valued math. A background in calculus will be slightly helpful. Some math may be presented as integrals but we will not go through rigorous derivations.

Students should also be comfortable with computers and a background in any programming language such as Matlab, Octave, FreeMat, C++, Java, Fortran, Pascal, etc. will be helpful.

This class will be taught using the Python programming language and it will be assumed that students are not familiar with this language. Students are allowed to use other programming languages if they are more comfortable with them, but this should be discussed at the beginning of the semester.

Students will not need any background in image processing. Students with extensive knowledge of image processing methods should find a different course.

Textbook

The textbook material will be provided as PDFs as the course progresses. The reason that we are not using a currently published textbook is that the course work will be heavily tied to computer functions which are also provided. No such book is available...yet.

Programming Skills

Students should be comfortable with a programming language (C++, Java, MatLab, etc.). The course materials will be provided as Python scripts, but arrangements can be made for students that find it necessary to work in other languages.

Students that are not comfortable with any language are encourage to download Python and beginning learning simple scripting methods.

Grading

This will be an applied class and so a larger portion of the grade will be dedicated to the assignments and project.

Computers

Students may use any platform. Students with Windows or UNIX should install Python 2.7 and students with MAC-OS should use Python 2.6. All students should install numpy, scipy, and Python Image Library.

Students may use other languages but should discuss with the instructor what this will involve.

Honor Code

All GMU students abide by an honor code. Students in this class will do their own work and write their own programs.

Jason Kinser 2012-05-18