CS376A Digital Image Processing
Spring 2023
Skidmore College

  Dr. Michael Eckmann
  Associate Professor
  Computer Science Dept.
  CIS 230E
  email: meckmann@skidmore.edu
Instructor webpage: http://meckmann.domains.skidmore.edu/
Office hours:
Mondays 1:15 p.m. - 2:15 p.m.
Tuesdays 1:15 p.m. - 2:00 p.m. and 2:45 p.m. - 3:45 p.m.

Course webpage: http://meckmann.domains.skidmore.edu/2023Spring/cs376a/


Class Meetings

M W  
2:30 p.m. - 3:50 p.m.  
Annex 217


Course Text and readings

No text required. Readings to be given out as handouts / links.

Course Overview

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
"attentiveness" attendance.



Assignments and class handouts will be available on the World Wide Web at
URL http://meckmann.domains.skidmore.edu/2023Spring/cs376a/

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.

Grading Policy

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)
10% Presentation
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)
20% Presentation
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.


Academic Integrity

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.


Disability Accommodations
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
Masks for
Edges -- and use to compute magnitude / direction
Smoothing -- including Gaussian

*** Cross Correlation / Convolution assignment

Morphology operators
  border extraction

Connected Components

Color Image processing
  pseudocolor images
  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
    random sampling
    distance (Euclidean & L1)
    L alpha beta color space


K-means clustering

*** K-means assignment
*** Apply K-means for clusters to colorize

Frei-Chen basis

Discrete Fourier Transforms

JPEG compression
  including Huffman coding
  run length encoding
  Discrete Cosine Transform

Hough transforms

Canny Edge Detection

Geometric Transforms of the image plane
  translation, scale, rotation
  affine vs. rigid
  non-linear warpings