Project 1: Image Processing

Due: Thursday, January 28

CSC385 - Computer Graphics


Goal: 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.

Action

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. Each filter should operate on both one and three channel images unless otherwise specified.

By implementing all the required features, you get 70 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.)

There is also a full implementation of the image processor, available on blackboard, that you may find useful to debug and test your own code. Information about this implementation can be found in its manual (also on blackboard).

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 on blackboard. 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. 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!

Some Rules

Read the following carefully.

Notes

Deliverables

You should the following on blackboard: You should not submit anything else.