55:148 Digital Image Processing
Chapter 1, Introduction
Chapter 1 Overview:
To Start VIP/IDL:
- Press the Start Button
- Go to Programs->Engineering Software->Research Systems VIP 1.5->VIP+IDL
- Click on VIP+IDL
- Wait for IDL and then VIP to start
To Start Cantata:
- at the UNIX prompt type cantata &
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 Image Analysis and Understanding, which is a
continuation of this course.
Low level digital image processing:
- Low level computer vision techniques overlap almost completely with digital image
processing, which has been practiced for decades.
- 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 ...
lena.pgm 512 by 512 PGM image
lenabrite.jpg512 by 512 JPEG image
mri.tif 256 by 256 TIFF image
sf.gif 256 by 256 GIF image
sf.png 256 by 256 PNG image
sf.jpg 256 by 256 JPEG image
sf2.png 256 by 256 PNG image
sf2.gif 256 by 256 GIF image
sf2.kdf 256 by 256 KDF image
sf_noisy.jpg 256 by 256 JPEG image
PGM: Portable Greymap Image
TIFF or TIF: Tag Image File Format
JPEG or JPG: Joint Photographic Experts Group File
Interchange Format*
GIF: Graphics Interchange Format*
PNG: Portable Network Graphic Format ( non-copyrighted
replacement for GIF )*
* = can be displayed in Netscape without additional plugin
- Save these images to your account: Create a diphome directory in
your account (this will make it easier to work with all the VIP projects and their related
images). Right-click on the above links, and use the Save As menu option to save
the images in your diphome directory.
- These images and others are also available from the UNIX command prompt at:
~dip/public_html/examples/images
Example VIP/IDL Projects:
- In the following paragraphs, italics is used to mark the steps you are expected
to perform independently.
- While we will spend some time in the future learning how to use VIP/IDL and how to write
programs using VIP, let's look at some of the concepts of low-level image processing using
our intuitive understanding of image processing:
- To save the projects used to demonstrate the following concepts to your account from
Internet Explorer, click on the below links, and select the "Save this file to
disk" menu option. Note: Netscape will corrupt these files if used for saving...
- Go ahead and save all of the projects below to your account. You will want to place
the VIP projects in your diphome directory. You have 3 minutes to complete the copying
task:
display.vip
histogram.vip
sobel.vip
median.vip
lpfhpf.vip
- To save these VIP projects to your account from the UNIX command prompt, type...
% cp ~dip/public_html/examples/vip_projects/projectname
~/
Example Khoros Workspaces:
- In the following paragraphs, italics is used to mark the steps you are expected
to perform independently.
- While we will spend some time in the future learning how to use Khoros and how to write
programs using Khoros, let's look at some of the concepts of low-level image processing
using our intuitive understanding of image processing:
- To save the projects used to demonstrate the following concepts to your account from
Internet Explorer, click on the below links, and select the "Save this file to
disk" menu option. Note: Netscape will corrupt these files if used for saving...
- Go ahead and save all of the projects below to your account. You will want to place
the VIP projects in your diphome directory. You have 3 minutes to complete the copying
task:
display.wksp
histogram.wksp
sobel.wksp
median.wksp
lpfhpf.wksp
- To save these Khoros projects to your account from the UNIX command prompt,
type...
% cp ~dip/public_html/examples/khoros.dir/wkspname ~/
Practical Experiment 1.A - VIP Version
Display project
- From VIP ( you should have it running if you followed the instructions above), open the display.vip
project (File->Open->Project...). If VIP is not running, start it by following the
directions at the top of this page.
- Watch the projection screen to see the basic VIP functionality.
- As expected, the display project facilitates image display.
- Now, try it in your own machine, you have 3 minutes to explore the functionality of
this workspace.
Practical Experiment 1.A - Khoros Version
Display workspace
- From Cantata ( you should have it running if you followed the instructions above), open
the display.wksp project (File->Open). If Cantata is not running, start it from
the UNIX prompt by typing: cantata &
- Watch the projection screen to see the basic Khoros functionality.
- As expected, the display workspace facilitates image display.
- Now, try it in your own workspace, you have 3 minutes to explore the functionality of
this workspace.
Practical Experiment 1.B - VIP Version
Histogram project
- Sometimes, the image was over- or under-exposed during the acquisition stage. In such
case, its quality may be improved by gray level transformation.
- Open histogram.vip
- Display the original image, what do you think about its quality?
- Now, run the Equalize block and display its result. Looking 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 bright.
- You see that the image quality may improve without changing the image information
content.
Practical Experiment 1.B - Khoros Version
Histogram workspace
- Sometimes, the image was over- or under-exposed during the acquisition stage. In such
case, its quality may be improved by gray level transformation.
- Open histogram.wksp
- Display the original image, what do you think about its quality?
- Now, run the Equalize block and display its result. Looking 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 bright.
- You see that the image quality may improve without changing the image information
content.
Practical Experiment 1.C - VIP Version
Filtering project
- Removing image noise is an important and highly practical task.
- Open median.vip
- Display the original image, corrupt it with shot 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.
- You have 3 minutes to experiment with the amount of corrupting noise and the size of
the median filter. You may want to come back during the lab hours and play little bit more
with the project.
Practical Experiment 1.C - Khoros Version
Filtering workspace
- Removing image noise is an important and highly practical task.
- Open median.wksp
- Display the original image, corrupt it with shot 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.
- You have 3 minutes to experiment with the amount of corrupting noise and the size of
the median filter. You may want to come back during the lab hours and play little bit more
with the workspace.
Practical Experiment 1.D - VIP Version
Edge detection project
- Sometimes, it is important to detect edges in the image. We will see later that edges
play a very important role in image segmentation.
- Open sobel.vip and run it.
- You have 3 minutes to explore the performance of the Roberts edge detector.
- You may find the Roberts edge detector node under Nodes->Process->Image
Processing->Roberts
- When running the Roberts edge detector, the edges are barely visible. Add an
hist_equal node as another output of the Roberts edge detection. Display the equalized
image. Do you see many more edges?
Practical Experiment 1.D - Khoros Version
Edge detection workspace
- Sometimes, it is important to detect edges in the image. We will see later that edges
play a very important role in image segmentation.
- Open sobel.wksp and run it.
- You have 3 minutes to explore the performance of the other 3 edge detectors included
in the Gradient Operators block.
- When running the Roberts edge detector, the edges are barely visible. Open the
histogram.wksp without clearing the existing workspace and add the equalization block as
another output of the Roberts edge detection. Display the equalized image. Do you see many
more edges?
Practical Experiment 1.E - VIP Version
Frequency space image processing project
- So far, the processing was performed in the spatial domain. In the past, you saw that
frequency domain may be very useful in signal processing.
- Open the lpfhpf.vip and run it.
- 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, right-click the box 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, you have 5 minutes to modify the parameters of the low pass filter and look at
the filter, image spectra, and the final image. Play with the other filters (Ideal,
Butterworth, 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 perform? You have 3 minutes to replace the
low-pass filter with the high-pass filter and see the filtered image. Again, experiment
with the filter parameters.
Practical Experiment 1.E - Khoros Version
Frequency space image processing workspace
- So far, the processing was performed in the spatial domain. In the past, you saw that
frequency domain may be very useful in signal processing.
- Open the lpfhpf.wksp and run it.
- 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, right-click the box 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, you have 5 minutes to modify the parameters of the low pass filter and look at
the filter, image spectra, and the final image. Play with the other filters (Ideal,
Butterworth, 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 perform? You have 3 minutes to replace the
low-pass filter with the high-pass filter and see the filtered image. Again, experiment
with the filter parameters.
Now, you became somewhat familiar with the basic VIP (or Khoros) 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.
Anyway, you should be ready for the first computer homework assignment...
Related Reading
Chapter 1 in the text
Table of ContentsNext Chapter
Last Modified: August 29, 2000