CSN 455 - Image Processing	Programming Assignment 3 - Due Thursday, March. 14

For this assignment, you will implement an image filtering program which allows a user to choose one of three required image filtering techniques. (You must implement three)

- low pass filtering ( lp )

- high pass filtering (hp)

- high boost filtering (hb)

For each of these filters, you may choose from among the filters we have discussed in class. In each case, the resulting image should be appropriately scaled to be stored into an eight bit image format. (You may use either a contrast stretching based technique or map all values greater than 255 to 255, all values less than zero to zero.)

Possible filters for the low pass filter include

1 1 1 1 2 1

1/9 x 1 1 1 1/16 x 2 4 2

1 1 1 1 2 1

Possible filters for the high pass filter include

-1 -1 -1 0 -1 0

-1 8 -1 -1 4 -1

-1 -1 -1 0 -1 0

The resulting eight bit image may represent either an absolute value (both rising and falling edges are white, edgeless areas are black) or a signed value result (Rising edges are white, falling edges are black, edgeless areas are mid-grey)

Possible filters for the high boost filter include

-1 -1 -1 0 -1 0

-1 9 -1 -1 5 -1

-1 -1 -1 0 -1 0

Your program should be named filter, and should have the following command line format:

filter image.pgm new.pgm -code

where code is the two letter corresponding to one of the above enhancement techniques. As a starting point, you may use the original brighten program or one of the programs you have submitted already this semester.

Place your code in your IP directory under the subdirectory name filter by midnight on the due date. Be sure to include your filter.cc file, and a makefile at a minimum. Your source file, filter.cc should contain comments which at a minimum include 1) your name, 2) the purpose of the program, 3) a description of the inputs and outputs of the program. Each function should be preceded by a brief comment describing its purpose, required inputs and what is returned by the function, if anything.

Also, be sure to change the permissions on your files by using the chmod command. For example: chmod go-r filter.cc