Image Analysis & Computer Vision projects
Possible Project Topics:
- 1) Recognition of geometric
shapes, e.g. circles, squares, rectangles, triangles, etc.
- 2) Classification of different
tools, e.g. screwdrivers, wrenches, hammers, etc.
- 3) Identification of
different coins and bills.
- 4) Design a program to read
- 5) Character recognition.
Other projects of your choice with emphasis on applications of pattern
Important Note: Your project needs to work with real world
input, i.e. the camera or scanner. You need to design it to be robust, i.e. to
handle various sizes, orientations, lighting conditions, etc. If it cannot
handle these you need to define a calibration routine that is easy and fast. As
part of the demo we will test the robustness via having the program classify
After you have defined the problem you need to generate a test image
database. For example, if you are identifying geometric shapes - circles,
triangle, squares, rectangle, etc, collect via the camera or scanner (at least)
6 images of each class (the more the better). BEFORE you start algorithm
development, separate the images into two sets - one training set and test set.
Next, use the training set to develop your algorithm with CVIPtools.
The following guidelines will help:
- 1) use CVIPtools to explore
algorithm development, using primarily the ANALYSIS window for these types
- 2) First, segmentation by
using the Segmentation window and/or edge detection.
- 3) Next morphological
filtering to reduce and solidify spatial objects (at bottom of
- 4) Next, Features window to
do feature extraction.
- 5) Examine the feature file
to come up with an classification algorithm.
- 6) Code the algorithm you
developed into your CVIPlab program. This is done by:
a) finding the function name that corresponds to
the CVIPtools function, see Chapter 12 and Appendix C in the book and the Help in CVIPtools.
b) See the Help
pages "CVIPtools C Functions" to see how the function is used in
a C program (note html versions of the Help pages are also on the Web at
c) do this for all functions you need.
d) code the algorithm with these functions in
your CVIPlab program.
e) code your classification algorithm into your
- 7) Test your program on
images you input from the camera.
- 8) Write a report on your
results, and present a demo to the class. The project is graded based on
what you did, so tell me what you learned, not just the "good"
- Be sure to use real images
(camera or scanner input), not computer generated images.
- Use a fixed set of images, at
least 10, to develop the algorithm. Test it on a different set of
at least 10 images. Use images with multiple objects. Tabulate or graph
statistical results, compare various algorithms you have developed, or
compare use of varying parameters.
- Use the HELP pages in CVIPtools if you have questions on using the
software (especially Feature extraction), if you still have trouble talk
to me (firstname.lastname@example.org, 650-2948).
- If you are not a
real C programmer, I suggest you leave out step 6 and do more work in step
1. I encourage the use of CVIPtools, and welcome any feedback on the
- If the problem gets too
complex to get anywhere in the time allowed, extract a portion of the
problem, or simplify.
- Try using the Utilities for
common functions. Pay attention to the DATA TYPE of output images, this
can be converted in Utilities/Convert. Note that images are always
remapped to BYTE data type for display, but the original image is still in
the IMAGE QUEUE. Utilities/Stats/Image Data Range will provide more
information than the viewer about the actual data (the viewer will display
minimum and maximum across all bands, real and imaginary data, while the
Utility will display information for each band separately).