Syllabus for
CS311Š Image Processing in Java
Course
Description:
A first course in Image Processing; Image algebra,arithmetic operations,boolean operations, matrix operations
Achromatic and Colored Light
Selecting Intensities, Gamma Correction
Chromatic Color, psychophysics, Color models
Color Space Conversion, low-level pattern recognition.
Students will learn the theory of 2-D Fast Fourier Transform Class, 2D convolution and frequency space processing, compression and 2D streaming.
Students will apply the theory by creating programs that read processing and write image streams. They are exposed to the elements of multi-resolution multi-media network streaming. They learn about a wide class of transforms, including Wavelets, DCT, the PFA FFT and others.
This course requires substantial programming effort and emphasis is place on good software engineering practices.
Students will learn enough signal processing to write their image processing applications.
Prerequisite: ..................................... CR310, Voice and Signal Processing
Textbook:................................. Image Processing, in Java by Douglas Lyon
Reference Material:............. Java Digital Signal Processing, By Lyon and Rao
E-mail...................................................... access is required.
Computer Usage: ........ Students MUST have access to a computer with Java .
Course Notes: .......................... Handouts/diskettes/e-mail, web page
Contact Information
Phone ........................................................................ (203)641-6293
Fax ........................................................................... (203)877-4187
E-mail:................................................................ lyon@DocJava.com
Web: ............................................................. http://www.DocJava.com
Office Hours
Monday, Tuesday....................................................... 1:00 pm - 2:00 pm
Wednesday............................................................... 5:00 pm - 6:30 pm
Course Offerings
CR311, Image Processing, ....................................... Mc 203 Mon 2:00-4:00
CR 325, Computer Graphics, ................................... Mc 203 Tues 2:00-4:00
SW 409, Java Programming II................................... Mc 203 Wed 6:30-9:20
Course
Objectives:
This course is designed to support the signal processing and computer systems domain in the Computer Engineering program. When the course is done, Students will have written their own Java applications for doing image processing.
1. The students will learn the principles of Image Processing.
Expected learning outcomes:
a. Applies transform concepts in programming situations
b. Recognizes interrelationships among signals and spectra
2. The student will become proficient with the usage of the Java language.
Expected learning outcomes:
a. Demonstrates the ability to utilize Java in practical image processing problems.
b. Uses appropriate object-oriented design patters to solve problems.
After the student take this course, they will know how to write programs that display and manipulate 2D images. They will also have a basic understanding of image filtering. Finally, the students will make use of data structures, linear algebra, design patterns, voice and 1D signal processing.
This course requires substantial programming effort and emphasis is place on good software engineering practices.
Outcomes:
When the course is done, Students will have deployed Java applications of their own design, on the web.
Performance Indicators:
Aside from the basics assessment procedures based on homeworks and tests, Students must obtain 75% or better on all tests. Additionally, students must perform at least 75% on the homeworks.
Student
Activities: Learning a new computer
language is very much a hands-on activity, which cannot be learned from
lectures or textbook reading alone.
It does require those lectures and textbooks, but the real learning
results from the laboratory trials and the homework assignments. To achieve the course objectives, the
student must have good class attendance and participation, conduct the computer
programming tasks during the laboratory periods as well as the assigned
homework. Homework assignments and
laboratory trials are due at the beginning of the class following the
assignments. They are to be placed
in an envelope containing the studentÕs name. The contents of the envelope will be a diskette and a paper
copy of the requested Java source code.
Course
Requirements: The schedule of
activities and topics to be covered each week are outlined below. Each week will begin with responses to
questions and a brief review on the previous weekÕs topics. The first week will begin with
administrative announcements and a review of this syllabus.
Grading
Policy:
Homework and Laboratory Trials: 1/3
Midterm
Exam : 1/3
Final
Exam
: 1/3
Assignments
are due at the beginning of class.
Assignments handed in during class lose 5 points, after class 10
points. Late submittals lose 10
points per day including weekends and holidays. Missing a test results in a zero unless a written excuse is
presented.
Homework
requirements:
Print
out a listing of the program. Print out the program intput and output. You may
need to do this at various levels of detail. Hand in a labeled disk with a
printout. Place the disk in a #10 letter envelope and staple the envelope to the
printout.
Topics: (coverage paced will be
altered to accomodate the class):
Week 1: Using the AWT - The new Event model
The Graphics Class
Test Patterns
Color Bars
resolution chart
multi-burst test chart
Snell and Wilcox test chart
Interaction
The mouse
The keyboard
The Evt class
building the menu
intercepting menu event
intercepting keyboard events
Week 2: The Model-View Approach
observables and the dialogs boxes
Int Dialog
Float Dialog
File dialogs
The ImageFrame Class
oldPixels
newPixels
menu construction
Week 3: Streams
File input stream
stream tokenizer
closing a file
token flags
writing files
summary for writing files
Save File Example/ set-up main menu bar
Process menu pick - save
Week 4: Digital Image Processing Fundamentals
Overview of Image Processing and its application
Image Storage and Display
image models
cameras video and scanners
Current state of streaming video on the Internet
Problems and solutions
Sampling
Spectra and Spectra
Preview of Image processing
Week 5: The PixelPlane Class
range checking
PixelGrabbers
internal data structures
the ImageStream
the ImageDataStream
Image doubleData
Reading and Writing Images
Reading GIF and JPEG
Writing GIF
Reading PPM
Writing PPM
Week 6: Edge Detection
Roberts, Prewitt, Frei-Chen,
Kirsch, Sobel,
boxcar, pyramid, argyle, Macleod,
derivative of Gaussian, Robinson,
Canny
Laplacian generation, Laplacian of Gaussian
Hat
Week 7: Boundary Processing
XY to Vector Conversion
vector ordering using Dijkstras' algorithm
Edge following and Martellis' algorithm
Divide-and-conquer boundary detection
Range finding via diffraction
Range map to boundary representation
Week 8: Image Enhancement Techniques
Blur
mean, median, unsharp
smoothing binary images by association
local area contrast enhancement
histogram equalization
lowpass filtering
highpass filtering
averaging multiple images
Week 9: Achromatic and Colored Light
Selecting Intensities-Gamma Correction in Java
Chromatic Color
psychophysics
Color models (CIE, RGB, YUV, CMY, HSV, YIQ)
Color coordinate systems
RGB to L*u*v*, L*u*v* to RGB
RGB to L*a*b*, L*a*b* to RGB
RGB to XYZ, XYZ to RGB
RGB to YIQ, YIQ to RGB
RGB to YUV, YUV to RGB
RGB to HSV, HSV to RGB
RGB to HLS, HLS to RGB
Week 10: Thresholding techniques
Global thresholding
multilevel thresholding
variable thresholding
thresholding using image statistics
using mean and standard deviation
using maximization of between-class variance
Week 11: Morphological filtering
set theory
arithmetic operations
boolean operations
erosion and dilation
medial axis transform
skeletonization
Week 12: Warping
scaling
rotation
shear
cutting and pasting
conformal image mapping
warping
Week 13: The Cosine Transform
The Discrete Cosine Transform
The Inverse Discrete Cosine Transform
The Fast Cosine Transform Class
Reading and Writing JPEG Images
Week 14: The InLine MPEG CODEC
Compressed MPEG movies images
decoding MPEG
encoding MPEG
reading MPEG files
writing MPEG files
displaying MPEG files
measuring loss
Implementing in-line Java Decoders
Week 15: The Wavelet Transform
The Discrete Wavelet Transform
The Inverse Discrete Wavelet Transform
The Fast Wavelet Transform Class
Writing a wavelet encoded file
Decoding the wavelet encoded file
Incorporating the decoder with the data
Distribution of wavelet images on the Net.