Image Processing Coursework

About the coursework

This coursework counts for 20% of the mark for the Image Processing module. It involves writing an image processing program in Java that implements a number of algorithms covered in the course. If you have done all the lab exercises, it would be easy for you to put the pieces together to make your coursework.

Note that MSc students are marked `harder' and more than undergraduate BSc students.


The deadline is the end of Week 10, 10:00am, Friday 15th March 2019. You must submit your zipped programmes before the deadline. Please use QM+  to submit your coursework. We will download your programmes and ask you to demonstrate for assessment.

As default submissions are open for 7 days after the deadline for late submissions, but penalty of 5% per day is applied in the school coursework system after the deadline times above. Submissions later than 7 days would receive 0 fail and will not be marked.

Demonstration will take place in the last 2 lab sessions of the term. This will be on Wednesdays 20th and 27th of March 2019. If your work is not assessed, you will receive zero. If you have a valid reason for not being available on the dates, then tell the demonstrators AT LEAST A WEEK BEFORE IT HAPPENS, and we will arrange another time. You must also provide documentary evidence of forced absence.


The coursework will be assessed in the way of demonstrating the working program in the lab.

A time/schedule for the lab demonstrations will be available here.

The coursework marks will be available on your landing page.

The demonstration is mandatory. You are entitled to sit the exam without having completed the coursework, however this is a very bad approach considering that the techniques that you learn/use in the coursework are highly relevant to the course.


1. In the labs you will implement a program in Java that:

  • loads and displays an image [10%]
  • pixel value rescaling and shifting [5%]
  • performs arithmetic and Boolean operations between images [5%]
  • performs point processing and bit-plane slicing [10%]
  • performs a convolution on the image for
    • smoothing the image [10%]
    • edge detection in the image [10%]
  • performs order statistic filtering [10%]

2. Enhance the program with a number of image processing algorithms to improve/alter the image contrast:

  • histogram equalisation [10%]
  • thresholding [10%]

3. Enhance the program to be able to select a Region of Interest (ROI). Perform the image processing function on the ROI. [10%]

4. Enhance the program with a menu system. Be able to perform a combination of image processing functions on the ROI. Include an "undo" function. [10%]

Notes: (a) parts 1 is mandatory, part 2 is the key part of the coursework, parts 3 and 4 should only be attempted when the others parts are complete. (b) For guidance, a good coursework is one that completes parts 1, 2. An outstanding coursework will also complete 3 and 4. (c) Although part 1 is worth 60% it does not necessarily mean that you will get 60%, i.e. it is the maximum number of marks available for that part.

Test Images

Choose suitable images that can be seen to demonstrate the image processing algorithms.

Use the test images provided for the course. Also perform image processing on the images below. These images are in PNG format. Convert as necessary using ImageMagick under linux. For example, type "convert trip.png trip.bmp" in Linux.

Medical images are available here. Decode the MR Brain dataset as per instructions. Do the image processing techniques help the visualisation of the brain slices?

You could also try and find your own images to use.

Algorithm testing

Here is an extract from the windfarm image and it's histogram equalisation:

Your program should produce a similar result.

Working from home

You can work from home. Whatever your choice, do make sure that it compiles/runs in the ITL well in advance of the assessment.