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.