|
|
|
|
|
| Introduction to Digital Image Processing | |
| Low level digital image processing | |
| Image Acquisition | |
| Practical Experiments in basic 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.
| |||||
| 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 computer vision techniques overlap almost completely with digital image processing. | |||||||
The following sequence of processing steps is commonly recognized:
|
Images come in many different formats ...
| |||||||||||
|
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