Assessment 1


Ok, so for the last few units 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 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 one of the following image processing capacities:

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.

Once you've finished, zip up your code and upload it to the VLE in the assessments area. Note the comments on plagiarism and collusion apply.