Assessment 1


Ok, so for the last few weeks we've been building up an application that stores and processes data. For your first assignment we're going to ask you to write code that does one of a number of possible image processing tasks.

Start this project with copy of the practical application Analyst class constructor that is empty except for making a Storage object. Also empty Storage of everything except the data array and the setData / getData methods. You can add code back in if you find you need it, but at least start with something clean and empty of code.

We will imagine that we are dealing with a single band of data (details of bands); that is, a single file of data values in a 2D array. As we haven't yet dealt with reading files, We've written you a class that replicates the reading process by passing out a 2D double data array: DataReader.java. To get the data from it, make an object from the class in your Analyst class and call the DataReader's getData() method. You may also be interested in this info on checking your array visually.

What we'd like you to do for the assessment is add to your application the following image processing capacity:

Conservative Smoothing with a Diagonal Neighbourhood of radius 1

Median Filtering with a Diagonal Neighbourhood, using a Bubble Sort

Mean Filter with a von Neumann neighbourhood of radius 1

Mean Filter with a Moore Neighbourhood of radius 2

Each process above should have its own method which takes in and returns a 2D array, but which can call other methods to get the job done. You can use whichever class structure you think makes sense. The 2D array should be shown to the user somewhere outside of the method.

If you're anyway near normal, the project will seem like a massive undertaking. Don't panic. Here are some hints for getting started.

Once you've finished, zip up your code and upload it to the VLE in the assessments area. Note the projects are *individual* projects -- the groupings above are to show you which project to do, not to define work groups! Our comments on plagiarism and collusion apply. Note also that if you see this assessment listed as "2000 word equvalent" that is just because we have to put a rough indication of the size of the project in words online -- ignore it, you neither need to write 2000 words nor limit yourself to that.