Image Processing in Java




Image Processing in Java gives a unified, introductory treatment to two-dimensional image processing concepts with emphasis on fundamentals and Java examples. Topics include enhancement, restoration, compression, in-line Java decoders, transform theory, interface design, programming and deployment techniques.


Prerequisite: Digital Signal Processing, In Java
E-mail: lyon@DocJava.com
Web: http://www.DocJava.com
Text:
Image Processing in Java by Douglas Lyon, Prentice Hall (c) 1999. Available from Prof. Lyon.
Text available from:
Prof. Lyon.
Computer Usage:
Web and e-mail access are REQUIRED. You MUST have access to a computer with a Java compiler. MetroWerks CodeWarrior is strongly suggested. This product is in the book store and available for a low academic price (list price $495, student price $89.95).
References:
Java Digital Signal Processing by D. Lyon and H. Rao, M&T Books, (c) 1997. Available from Prof. Lyon, UB Bookstore or AMAZON.COM:
http://www.amazon.com/exec/obidos/ISBN=1558515682/douglaslyonA/

Java Source Book by Ed Anuff, The John Wiley and Sons, Inc., First Edition, (c)1996.
The Java Class Libraries, Second Edition, Volume 1 and Volume 2.
Volume 1 is by Chan and Lee, Volume 2 is by Chan Lee and Kramer.
Addison Wesley, 1998. Available from: UB Bookstore or Amazon:
http://www.amazon.com/exec/obidos/ISBN=0201310023/douglaslyonA/
http://www.amazon.com/exec/obidos/ISBN=0201310031/douglaslyonA/
How to Program Java by Deitel and Deitel, Prentice Hall, First Edition, (c) 1997.
Course Notes, as required, some are available on-line at http://lyon.bridgeport.edu or by purchase of copies.
Goals:
To build upon the knowledge gained in CS410 and learn how to design research test-beds for distributed object-oriented computing on the web. Students will be exposed to a variety of modern Java programming topics.
Coordinator:
Douglas Lyon, Professor of Computer Science and Engineering. E-mail: lyon@snet.net

Prerequisites by Topic:
1. Java programming experience (CS410 or equivalent)
2. Mathematical maturity (integral calculus and linear algebra)
3. Use of computer tools, including e-mail, browsers and compilation tools.
4. Data structures, priority queues, hashing etc. (CS 400 or equivalent)
Topics: (coverage will be altered to encompass the latest APIs)
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.