We will also cover spectral analysis and frequency domain filtering, color, color models and processing color images, to be covered in depth.
File formats are to be discussed last as time allows, although we will use the PGM format throughout to process uncompressed data with our C/C++ programs.
The tools used in this course are: Matlab, XnView, XView and LView Pro (mostly Matlab). Students will also write C/C++ programs for homework to do basic and special algorithms.
This course has a Term Project that includes a design component. A Final Report is to be done by each project group, which will count as the Final Examination. Each project team will be small and each student is expected to list one's particular tasks in the project. The project topic must be approved by the instructor.
A Final Report on the project must explain the problem, the approach to solving it, the design, the algorithm and the results. It will be handed in by each project group. This Final Report must be a well written document that demonstrates state-of-the-art image processing.
Week Topic
1,2 Unit 1. Introduction to Images. Notices to get started!
3,4 Unit 2. Point Processes. [Get point processing program dip1pp.c [UNIX] (use File | Save Page As)] dip1pp-win.c [Windows]
4,5 Unit 3. Area Processes.
4,5
Unit 3 Appendices 3A,B.
Mask Convolution, C Program.
MDIP 2.1 program).
[right click on link, then on Save
Page As to save source code text!]
6 Unit 4. Frame Processes.
7,8
Unit 5.
Image Geometry I. Morphology
8,9
Unit 6.
Image Geometry II. Transformations
Fuzzy Interpolation C Program fzntrp4.c
- compiles under MS Visual C++
Text File of C Source Code for Fuzzy Interpolation
(right click, Save Page As)
10,11
Unit 7.
Frequency Domain Analysis.
12,13 Unit 8. Color Image Processing.
14,15 Unit 9. File Formats and Compression.
G r a d i n g:  
Quizzes/Homework: 33% (includes take-home and in-class problems)
Midterm Exam.: 33% (formal in-class examination)
Term Project: 34% (group projects)
Students registered for graduate credit must have a topic with a strong research component, i.e., must involve a methodology and algorithm that does something for a special purpose. A key criterion in grading the graduate final reports of term projects will be this research component. Reference must be given to articles in one or more research journals.
1. Apply pixel-wise mathematical transformations to grayscale images for
enhancement
2. Apply neighborhood-wise math. transformations to grayscale images for
enhancement via mask convolution to do smoothing, sharpening, edge detection
and preliminary segmentation
3. Fuse frames together for enhancement of information in images
4. Use geometric morphing methods for boundarizing, dilation, erosion,
blanking and related tasks
5. Use mathematical geometrical methods for zooming in/out, affine
transformations, warping/unwarping, and image registration. Use nearest
neighbor, bilinear and fuzzy interpolation for resampling.
6. Understand spatial frequency, analyze images and apply frequency domain
filters to remove high frequency noise, to apply notch filters, and apply
homomorphic filtering
7. User color models and functions to break color images into parts, process
the intensity (grayscale) part and recombine images into a result that is
improved. Use color effects for particular purposes
8. Analyze images to determine problems, design processes to fix the
problems, write computer programs and use existing software tools in this
processing
9. As project group, write documentation on the analysis, design, approach,
algorithms, expected results, actual results, and comparisons related to
image processing
Assessment Method -
ABET Accreditation Criteria
1. Homework, Midterm Examination - (a), (e)
2. Homework, Midterm Examination - (a), (e)
3. Homework, Midterm Examination - (a), (e), (h), (i)
4. Homework, Midterm Examination - (a), (e)
5. Homework, Midterm Examination - (a), (b), (d), (e)
6. Homework, Term Project - (a), (b), (c), (e), (k)
7. Homework, Term Project - (a), (b), (c), (d), (e), (i), (k)
8. Homework, Midterm, Term Project - (a), (b), (c), (d), (k)
9. Term Project - (a), (b), (c), (d), (g), (k)
PROJECTS: [Each group should hand in a list with the group names and a paragraph of what is to be done - a list of tasks for each student is required on the Final Report]
Combining Same-Scene Images
Counting Cells in Microscopic Images
Build a Windows Application for Image Processing
Counting Objects in a Color Image
Digital Image Watermarking Robust to Geometric Transformatins
Homomorphic Filter, Digit Detection/Recognition
Homomorphic Filtering
Butterworth High-Pass Filtering
Adaptive Thresholding for Image Segmentation
Combining Images of the Same Scene
Procesing Color Images with Frequency Filtering
Color Image Segmentation
Detect Facial Furrows
Analysis and Comparison of Image Segmentation Methods
Using the Pareto Function as Frequency Domain Filter in Image Processing
Periodic Noise Removal
Color Image Processing
A New Interpolation Procedure
Instructions for Project Reports
1. Due 8 September 2005: Use Matlab to display lena256.tif, then change the contrast to make the image lighter and clearer, and then print out the before and after versions. Convert the image to the PGM packed (binary, not ASCII) format and save for future use. Hand in: i) the two printed images (before and after); and ii) the header and first three data bytes of the PGM file. Explain the difference between binary and ASCII values for a gray scale pixel and give an example of each kind of value.
2. Due 15 September 2005: (a) Three bytes are used for each color
pixel, where one byte is used for each of the colors Red, Green and Blue.
To make a shade of gray, all bytes must be equal. How many different colors
can be made? How many shades of gray can be made? How many shades of
red can be made with green and blue equal and strictly less than the red
values.
(b) Do Exercise 1.1 of the Unit 1 notes.
(c) Do Exercise 1.2 of the Unit 1 notes.
(d) Work Exercise 1.6 of the Unit 1 notes.
3. Due 22 September 2005: Process the "shuttle" image to take out the speckle (salt and pepper) noise, equalize the histogram, smooth the result very lightly, and then sharpen. Use Matlab for despeckling, smoothing, and design the sharpenng mask (use unsharp masking) to use with Matlab. Hand in the original, despeckled equalized, smoothed and sharpened image printouts. Note: you can put them all on one page if you make a MS Word document and insert the images (or Word Perfect). Finally, subtract the despeckled image from the original image and examine the resulting image. Hand it in also. What does this image represent?
4. Due 6 October 2005: Save the MDIP2.CPP C/C++ (Mask Digital
Image Processing) program from Unit 3. Use that program to enter 2
different masks to detect edges on the "building" image. Convert the result
images to a *.gif (or *.png or *.tif) file and print out the edges.
IMPORTANT: be sure to make the output image have black lines on a
white background (a black background uses too much printer toner).
Download the program mdip2.cpp. I have fixed it and compiled and run it
on MS Visual C++ 6.0 (we have this in the Computer Labs). It has the
display() function commented out (this one used TCL/TK to display the before
and after images on the screen, which will work for Windows if you have
TCK/TK installed for Windows).
5. Due 13 October 2005: rotate the "shuttle" image 12 degrees and enlarge it by a factor of 1.3. Use this rotated enlarged image as the base image and register the original image as the input image. Hand in the i) original; ii) base; and iii) input images.
6. Due 20 October 2005: Start with the pollens image as the original, despeckle it to remove single pixel ("salt and pepper") noise, then lightly smooth, convert to black and white (bw image), close the image, erode the closed image, subtract the eroded image from the closed image, and multiply the result of the subtraction times the original image. Hand in the original, smoothed, closed, subtracted and final multiplied images with a clear indication of what was done on each image.
7. Due 27 October 2005: download new
fzntrp4.c file. Go up to schedule for units and see Unit 6.
Start with the lighthou.tif image
(of a lighthouse) as original, dilate original, erode original, subtract
eroded image from dilated image to get boundaries, then use Matlab to thin
the boundary image. Show the images. Note: Convert to black and white
before dilating and eroding. Otherwise, the lines will be grayscale and some
will have darker shades of gray rather than clean white lines on a black
background.
Extra 10 Points Possible. Do an affine transformation on the
palm.tif image using
| 1.3 1.4| | | |-1.0 1.6|as the transformation matrix M. Use Matlab to perform this affine transformation. Select a suitable interpolation method. Show before and after images.
Extra 10 Points Possible. Do an affine transformation on the
palm.tif image using the transformation matrix
| 1.3 1.4| | | |-1.0 1.6|again. But this time, compile and use interp4.c to perform this affine transformation. Show before and after images.
8. Due 8 November 2005: Download the color image of
San Francisco at night, convert from RGB to HSI, separate the components
and strongly sharpen the I component. Also strengthen the saturation by
10% and warm the hue. Then put the components together and convert to RGB
and display. Print out on a color printer to show before and after images.
=> [if you can NOT access a color printer, email me the result so I
can see the color result]
9. Due 15 November 2005: Design a highpass filter using
an inverted Gaussian (use Matlab) to filter one of the given images. Compare
the before and after results. Analyze the effect of a Gaussian lowpass filter
on a noisy image.
Xerophytes & Zebus
%
^
&
*
(
)