Chapter 1

 

Home Chapter 1 Chapter 2 Chapter 3 Chapter 4 Chapter 5.1 Chapter 6 Chapter 12 Chapter 13 Chapter 14

Chapter 1:  Introduction 

Overview:
Introduction to Digital Image Processing
Low level digital image processing
Image Acquisition
Practical Experiments in basic image processing

Introduction to Digital Image Processing: 

Vision allows humans to perceive and understand the world surrounding us. Computer vision aims to duplicate the effect of human vision by electronically perceiving and understanding an image. Giving computers the ability to see is not an easy task - we live in a three dimensional (3D) world, and when computers try to analyze objects in 3D space, available visual sensors (e.g., TV cameras) usually give two dimensional (2D) images, and this projection to a lower number of dimensions incurs an enormous loss of information. 
In order to simplify the task of computer vision understanding, two levels are usually
distinguished; low level image processing and high level image understanding. 
Low level methods usually use very little knowledge about the content of images. 
High level processing is based on knowledge, goals, and plans of how to achieve those goals. Artificial intelligence (AI) methods are used in many cases. High level computer vision tries to imitate human cognition and the ability to make decisions according to the information contained in the image. 
This course deals almost exclusively with low level image processing, high level image processing is discussed in the course EE628 Computer Vision, which is a continuation of this course.

Low level digital image processing

Low level computer vision techniques overlap almost completely with digital image
processing. 
The following sequence of processing steps is commonly recognized: 
Image Acquisition: An image is captured by a sensor (such as a TV camera) and digitized; 
Preprocessing: computer suppresses noise (image pre-processing) and maybe enhances some object features which are relevant to understanding the image. Edge extraction is an example of processing carried out at this stage. 
Image segmentation: computer tries to separate objects from the image background. Object description and classification in a totally segmented image is also understood as part of low level image processing. 

Image Acquisition ... Input Images: 

Images come in many different formats ... 
PGM: Portable Greymap Image (lena.pgm 512 by 512 PGM image)
TIFF or TIF: Tag Image File Format (mri.tif 256 by 256 TIFF image)
JPEG or JPG: Joint Photographic Experts Group File Interchange Format (lenabrite.jpg 512 by 512 JPEG image)
GIF: Graphics Interchange Format (sf.gif 256 by 256 GIF image)
PNG: Portable Network Graphic Format ( non-copyrighed replacement for GIF ) (sf2.png 256 by 256 PNG image)
Save these images to your account. Right-click on the above links, and use the Save As menu option to save the images in your directory. These images and others are also available on the CLUE system in the locker ~ee528/examples/images 
We will be using the Matlab image processing toolbox to process images. For more information on Matlab's functions, type >help filename. This will give you information on how the function works and how to use it.
Matlab no longer reads in images that follow the gif format due to legal constraints. To process a gif image in Matlab, you must convert it to another format.
Practical Experiment 1.A - Displaying images 

Download the images listed above to your machine. From Matlab, run the program displayim.m. The display project facilitates image display. The basic commands for inputting and outputting images in Matlab are: imread and imwrite. For image display, we will use the routine, image or imagesc. Try it on your own machine. This program also introduces you to the idea of colormaps which are a mapping from the numerical pixel values to the display values. Experiment with different colormaps and note the effects on the images. (Type help graph3 to get a complete list of the colormaps.
Practical Experiment 1.B - Histograms 

Sometimes, an image is over- or under-exposed during the acquisition stage. In such
case, its quality may be improved by gray level transformation. Open the histogram demo, imadjdemo. Display the circuit image, what do you think about its quality? Now, run the Histogram Equalization operation and display its result. Does it look better?  Equalization changes the image visual quality by modifying gray level appearance of each pixel according to the global gray level image characteristics. Here, the original image was too dark. Note how image quality may improve without changing the image information content. Experiment with other images such as the quarter.

            >imadjdemo - Intensity adjustment and histogram equalization demo..

Practical Experiment 1.C - Filtering project 

Removing image noise is an important and highly practical task. Open the demo, nrfiltdemo.  Display the original image, corrupt it with black and white speckle noise, and display the corrupted image. The median filter replaces each pixel with a median value in its small neighborhood. In this case, it removed the noise quite well.  Experiment with the amount and type of corrupting noise and the size of the median filter. What happens when the filter gets bigger? 
>nrfiltdemo - Noise reduction filtering demo.
Practical Experiment 1.D - Edge detection

Sometimes, it is important to detect edges in the image. Edges play a very important role in image segmentation. Run the matlab demo edgedemo. Explore the performance of the different  edge detectors for the blood and circuit images. Explore the effect of adjusting the threshold.  How does the threshold affect the number of edges found? How do the results of  the Canny method differ from the Roberts method? 
>edgedemo - Edge detection demo.
Practical Experiment 1.E - Frequency space image processing 

So far, the processing was performed in the spatial domain. In the past, you saw that the frequency domain may be very useful in signal processing. Run the firdemo in Matlab.  Explore the project and make sure you understand how it is that the final image is so smoothed - you should conclude that only low frequencies remain in the image after low-pass filtering. To modify the properties of the filters, click the boxes of the filter which you want to modify and select Properties. In the Properties options, you should be able to change filter function, type, order, cutoff frequency, etc... Now, modify the parameters of the low pass filter and look at the filter, image spectra, and the final image. Play with the other filters (different design methods , etc.) and critically compare the filter spectrum, spectrum of the filtered image, and the appearance of the final image. How do you think the high-pass filter will perform? Again, experiment with the filter parameters. 

            >firdemo - 2-D FIR filtering and filter design demo

Now, you should be somewhat familiar with the basic Matlab Image Processing Toolbox functionality and you acquired some intuitive understanding of several low level image processing operations. Yes, we sort-of jumped in the middle of the subject and experimented without full understanding of the processing steps that were performed. In the future classes, we will start from the beginning and will build our image processing knowledge together with building image processing experience. To find out more about the types of routines available in the Matlab Image Processing Toolbox, type the command: help images/images in the matlab workspace. This will give you a list of the available routines.

Date Page last edited: Monday, April 02, 2001