CS 474/674 Digital Image Processing

Copyright by Prof. Carl G. Looney, Aug,2001,2002, 2003, 2004, 2005



Professor Carl Grant Looney
Computer Science Department, UNR
SEM 237, tel. 775-784-4313, fax. 775-784-1877
email: looney@cs.unr.edu
Web: http://ultima.cs.unr.edu/index.php
Class: 4 pm - 5:15 pm T., Th. 227 Mackay Science Bldg.
Office Hours: 5:15 pm T., Th.
Reference Book: R.C. Gonzalez and R. E. Woods, Digital Image Processing, 2nd Edition, Prentice-Hall, Upper Saddle River, NJ, 2002.
Required Web Notes: C. G. Looney and L. R. Liang, Digital Image Processing, CS Dept., University of Nevada, Reno, NV, Copyright 2002, 2003, 2004, 2005
Journals of Interest: IEEE Transactions on Image Processing;     IEEE Transactions on Medical Imaging;     Real Time Imaging;


        In this course you will first learn the fundamentals of processing gray scale images:
image files, contrasting, histogram equalization and dual histogram equalization, linear and nonlinear transformations, sharpening, smoothing, blurring, edge detection, line drawings with line thinning, image registration, fusion of multiple image frames, geometrical methods (zooming in and out, interpolation, rotation, affine transformations, morphing, dilation, eroding and segmentation.

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.

===================================================


   S y l l a b u s

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)




NOTICE FOR GRADUATE CREDIT

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.


ABET Accreditation Criteria, Comp. Sci. & Engr.
    Outcomes

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]

Examples: Previous Projects

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


Possible Project Topics (check with professor for other topics): homomorphic filtering<> enhancing color images <> notch filters in the frequency domain <> measuring object size in images <> new thinning algorithm <> a new segmentation method <> detecting human skin in color images by color-combination patterns <> counting objects in an image <> inserting image objects into another image <> blanking out objects in an image <> undistorting a distorted image <> removing periodic noise in a small band of frequencies <> new method for removing speckle noise in image that has light and dark sections <> color image segmentation <> obtaining good boundaries<> experimental spatial filtering with convolution masks of various sizes <> edge detection with smoothing and thresholding to get enhanced edges <> tracking an object that moves in a sequence of images <> detect the difference between different textures in images (use with FFT features, spatial variances and correlations, or both) <> apply an adaptive threshold over the darker and lighter parts of an image to segment it <> enlarge an image and detect the edges and then reduce it to original size to see if edges are better <> enlarge an image and smooth it and then sharpen it before reducing it to original size to obtain better sharpening <> image arithmetic to achieve some effect (subtracting background <> combining images of same scene for some improvement <> adding pseudo-color to a grayscale image <> using morphology for some purpose (firm up boundaries for measurements) <> pruning spurs from lines <> any combinations of the above or similar ones.

Instructions for Project Reports



Assignments

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.


Topics for Midterm Examination








Xerophytes & Zebus

      %       ^       &       *       (       )