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 dates (intermediate and final).

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. You must implement all required features to receive any credit for optional ones. All work should be developed with a partner using pair programming except for those in the "Create an image" category. For each feature you implement, you need to describe how you tested it; that typically will involve creation of an appropriate test image.

By correctly implementing all the required features, you get 65 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 parameters 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.

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 one you should edit is ip.cpp.

You may download a zipped version of a visual studio project containing 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 a 24 bit color image. (Here is a sample.) Gimp is a useful tool for converting file formats.

What and how to submit

You must submit your final project folder, appropriate images and movies, and a write up that describes what you implemented and evidence of how you tested it. All materials should be zipped and uploaded to your sakai dropbox. Note that your submission will differ from your partner because of the "Create and image" requirements. You should not submit anything else.

Some Rules

Read the following carefully.

Notes


Last Update: Jan. 2013