CS376A Digital Image Processing
Dr. Michael Eckmann
Computer Science Dept.
Instructor webpage: http://meckmann.domains.skidmore.edu/
||1:15 p.m. - 2:15 p.m.
||1:15 p.m. - 2:00 p.m.
||2:45 p.m. - 3:45 p.m.
Course webpage: http://meckmann.domains.skidmore.edu/2023Spring/cs376a/
|2:30 p.m. - 3:50 p.m.
Course Text and readings
No text required. Readings to be given out as handouts / links.
Digital Image Processing can be described in general as given a digital image as input, process that
image in some way and produce another digital image as output. Students in this course will learn
about how color digital images are represented (as a 2d array of pixels each of which has Red, Green
and Blue values.) Students will learn classic techniques such as computing intensity image of a color
image, techniques to do edge detection (where pixels that lie on borders of differences in intensity are
edge pixels), noise reduction, blurring, and many others. Students will also learn how to compute
global information about images such as histograms of color values that can then be used to do image
processing on an image, such as in the technique of contrast enhancement from histogram equalization.
Other techniques that will be covered will be algorithms for segmentation (to segment an image into
distinct areas based on the properties of the pixels in those areas) --- can be used as a precursor for
object recognition, tracking etc.
Course Goals and Objectives
1. To get a foundational basis in common digital image processing techniques
to allow a student to independently apply them and learn related techniques.
2. To understand, be able to use and be able to write computer programs
utilizing the various digital image processing techniques.
Attendance is mandatory. I will take physical attendance as well as
Assignments and class handouts will be available on the World Wide Web at
Please type all assignments.
Late assignments will be accepted, but with penalty.
There will be three programming assignments, a group presentation
and a final paper.
A grade is first calculated by the following scheme:
Your grade will be the better of these two calculations:
Programming Assignments weighted:
17% Assignment 1 (Cross correlation / Convolution programming assignment)
18% Assignment 2 (Histogram equalization programming assignment)
35% Assignment 3 (K-means clustering & Colorize programming assignment)
20% Final paper
Presentation & final paper weighted:
14% Assignment 1 (Cross correlation / Convolution programming assignment)
16% Assignment 2 (Histogram equalization programming assignment)
25% Assignment 3 (K-means clustering & Colorize programming assignment)
25% Final paper
In addition, as I always do with my courses, your grade will be influenced
by my assessment of the effort you put into the course and assignments as
well as early / late submission of assignments.
If assignments are habitually submitted late or one is more than a couple
of days late, then this can negatively effect your overall course grade.
Each program/homework/exam may be graded on a curve (with assignments not
turned in not affecting the curve).
In general each curve will have a mean between B- (2.7) and B (3.0),
depending on my assessment of the overall performance.
I list here the policies by which the students of this class are
expected to abide.
1. Improper Collaboration Policy.
2. Skidmore Honor Code and Academic Integrity.
3. The Ethics of Scholarship.
Failure to abide by these policies results in a negative learning
environment and you should expect to be held accountable.
If you are a student with a disability and believe you will need academic accommodation,
you must formally request accommodation from Meg Hegener, Coordinator of Student Access
Services. You will also need to provide documentation which verifies the existence of a
disability and supports your request. For further information, please call 580-8150 or stop
by the office of Student Academic Services in Starbuck Center.
Title IX Statement
Skidmore College considers sexual and gender-based misconduct to be one
of the most serious violations of the values and standards of the
College. Unwelcome sexual contact of any form is a violation of students'
personal integrity and their right to a safe environment and therefore
violates Skidmore’s values. Sexual and gender-based misconduct is also
prohibited by federal regulations. Skidmore College faculty are committed
to supporting our students and upholding gender equity laws as outlined
by Title IX. If a student chooses to confide in a member of Skidmore's
faculty or staff regarding an issue of sexual or gender-based misconduct,
that faculty or staff member is obligated to tell Skidmore’s Title IX
Coordinator or Title IX Deputy Coordinator. The Title IX Coordinator or
Deputy Coordinator will assist the student in connecting with all possible
resources for support and reporting both on and off campus.
Identities and details will be shared only with those who need to know to
support the student and to address the situation through the college's
processes. If the student wishes to confide in a confidential resource, The
Counseling Center Staff, Health Services, and Victim Advocates are all options
More information can be found at https://www.skidmore.edu/sgbm/ or by
contacting the Title IX Deputy Coordinator.
in approximate order with likely programming assignments signified by ***
How digital images are stored
RGB color model, Grayscale intensities
Cross Correlation / Convolution
Edges -- and use to compute magnitude / direction
Smoothing -- including Gaussian
*** Cross Correlation / Convolution assignment
Color Image processing
applying curves to lighten/darken
use in contrast enhancement (Hist. Equalization)
use in thresholding (Otsu method)
use in matching / specification ---
to apply color scheme of one image to another
*** Histogram Equalization assignment
Colorizing an image
included learning about
distance (Euclidean & L1)
L alpha beta color space
*** K-means assignment
*** Apply K-means for clusters to colorize
Discrete Fourier Transforms
including Huffman coding
run length encoding
Discrete Cosine Transform
Canny Edge Detection
Geometric Transforms of the image plane
translation, scale, rotation
affine vs. rigid