CS 117 Assignment: Multidimensional Image Processing (Parts A, B, and C)


For this assignment, we will get fancier in our ability to process images. We will now think of an image as a three-dimensional array of pixels: the first dimension corresponds to the rows, the second to the columns, and the third to the color bands. Note that parts A and B are team assignments, and that part C is an individual assignment. A description of which methods are part of which assignment is at the bottom of this web page.

We will again use the EzImage class, which gives us some of the basic tools that we need. For images, you can again use background1.jpg, background2.jpg, background3.jpg, amy.jpg, or dave.jpg, or obtain your own image instead if you like: you can use your picture from the Carleton directory or you can take a picture with a digital camera.

Your mission is to write new methods for PhotoLab. If you're working with a different partner, you can start again from scratch or grab the code that one of you wrote as a starting point. The PhotoLab that you submit this time around will have a different (additional) set of methods, so it doesn't matter if you had problems last time with some of your methods. Here are the methods that your PhotoLab class should have:

Test your program by writing a corresponding PhotoLabTester class. Check the return values from your methods, and print out text indicating whether or not your methods were successful.

Assignment "A" (due Saturday, 5/7, 5 PM)

Assignment "A" is a team assignment. It consists of getting the constructor, crop, and dither methods working. You and your partner should submit PhotoLab and PhotoLabTester, along with any associated images, in a directory called image2a.

Assignment "B" (due Monday, 5/9, 11:55 PM)

Assignment "B" is also a team assignment. It consists of getting overlay, circleCrop, and scale working. Submit all of your work (which includes assignment "A") in a directory called image2b.

Assignment "C" (due Wednesday, 5/11, 11:55 PM)

Assignment "C" consists of getting blur working, and should be done individually. For this individual assignment, you may consult with others, trade ideas, and obtain help; but the code that you write should be your own. Submit your work (which includes assignments "A" and "B" from your teamwork) in a directory called image2c.

Good luck, and have fun!