Project 4: Image Processing—The Collage

Due: Thursday 25 October 2007

Description

The Code

In this project you are asked to add a method to Picture.java called renderEffects() that applies four different image processing filters to (at least) four (potentially unequally sized) vertical stripes of the original picture. At least two of these filters must be selected from the list below. The other two may be of your own design. Feel free to experiment. Again, keep in mind the principle of downhill synthesis and uphill analysis. Very simple functions often create impressive results.

Choose at least two of the following filters:

Glass, flip, posterize, Warhol, and blur filters

Filters used above (from left to right): glass, flip, posterize, Warhol, and blur.

Also, be sure to comment your code fully, explaining your intention for method and field you create and which parameters, if any, they take. Prefix your Picture class file with comments that include your name, course title, date, and the project number and title. For example:

// Joshua Reyes
// CSIT 114
// 25 October 2007
// Project 4: Image Processing Collage

Notice that because your method accepts no parameters and returns nothing, it will take the form:

public void renderEffects() {

	// The body of your method here.
	
}

It may be necessary to alter Pixel.java, and even SimplePicture.java. If you do add methods to either of these classes, be sure to document your changes in the code and your write-up, and to turn in your altered class files. You may also turn in a JPG file that you think works especially well with your renderEffects() method. However, design your method so that it works on any image of arbitrary dimensions.

The Write-up

Once you have implemented the method above, write longer essay detailing your experience programming in a plain text file called memo.txt. (Do not use an editor like MS Word.) Remember that your analysis counts for the majority of your grade. Please write in clear, proper English. As above, be sure to include your name, class, and project title.

Here are some questions to keep in mind:

If you worked with others, explain what each person contributed to your project. Cite others appropriately. Even if you worked with others, the code you pass in ought to be your own.

Turning the Project In

Use a secure FTP client to create a subdirectory of csit114 called project4. Upload your Picture.java (and Pixel.java, SimplePicture.java if necessary) and memo.txt to that directory by Tuesday, 16 October 2007. Please make sure that your file names are spelled correctly. It is frustrating for me to have to search for your files by hand.

Rubric

RequirementAdvancedProficientNeeds ImprovementMaximum Points
Picture.java
Comments and Coding Style Well commented. Code conforms to naming and style conventions. Mostly commented. Code mostly conforms to naming and style conventions. Few or no comments. Code does not conform to conventions. 25
Compiles Compiles without error. Compiles without error. Does not compile. 6
renderEffects() Is named correctly, renders four image processing filters, at least two of which are listed above, and calls at least four helper method. Is named correctly, renders four image processing filters, and calls at least four helper methods. Is neither named correctly, renders less than four processing filters, and calls fewer than four helper methods. 14
Code Structure Modular design: most repeated patterns in code are stored in individual helper methods or executed using loop constructs. Semi-modular design: Blocks of code that perform a different tasks are logically and physically separated. There is heavy evidence of copying and pasting throughout the code. 20
memo.txt
Analysis Provides clear and complete exposition of the design and implementation process; addresses all or most of the questions above. Provides a mostly clear and nearly complete exposition of the design and implementation process. Provides an unclear and incomplete exposition of the design and implementation process. 35
Grammar and Style Well written. No obvious grammar or punctuation errors. A pleasure to read. A few grammatical errors such as punctuation or spelling, although most errors do not interfere with the overall message or the substance of the text. Many grammatical errors including punctuation, spelling or usage problems. 15
Organization Written work is neat and well organized. Written work mostly organized. Written work messy and disorganized. 10
Total 125