Computer Graphics
Z Sweedyk


Project 1: Image Processing

In this assignment you will create a simple image processing program. Your program will provide a variety of filters including ones that threshold, brighten, blur, edge detect, dither, and warp.

This assignment will be graded on a 100 point scale. You may use two late day extension on this project. Consult the course web page for the due date.

What You Have to Do

Following is a list of features that you may implement. The number in front of the feature corresponds to its point value. The features in bold face are required. The others are optional.

By correctly implementing all the required features, you get 66 points. You can acquire additional points by implementing optional features, winning the art contest (10 points), winning the composite image contest (10 points) thinking up something new and different (prior approval is recommended), or reporting a bug (see below). It is possible to get more than 100 points. However, after 100 points, each point is divided by two, and after 110 points, each point is divided by four, etc.

What You Are Provided

To allow you to focus on the image processing algorithms, we provide skeleton code that includes a user interface and an image class. The interface reads the input paramters for most of the filters but does no error checking. That is your responsibility. In addition, you must request and read parameters for any filters you design. (Note: these requests should be made from ip.cpp, which is described in the next section. )

We also provide a full implementation of the image processor that you may find useful to debug and test your own code. Information about this implementation can be found in its manual.

If you find a bug in the code, notes, or documentation for this project, please notify me immediately. Please be sure to provide enough information so that I can recreate the problem. You will acquire (up to) 5 bonus points if you are the first to report the problem.

Getting Started

We provide you with several files to get you started. The ONLY ones you should edit are ip.cpp and ip.h.

You may download a zipped version of these files here. After you copy these files to your directory, you should compile the program by using Visual Studio. Run the executable. Right click in the display window to view the menu options. At this point only the options under the File submenu are implemented. Load an image file in bmp format. Be sure it is an 8 bit grayscale image or a 24 bit color image. (Here is a sample.) Gimp is a useful tool for converting file formats.

The first filter you should implement is quantize by rounding. You'll note that this feature is required but worth 0 points! The reason for this will become obvious once you familiarize yourself with the image class!

What and how to submit

You should upload to your wiki the following: You should not submit anything else.

Some Rules

Read the following carefully.

Notes

Links


Last Update: Sept. 2010