CIP Coursework

About the coursework

This coursework counts for 20% of the mark for the CIP course. It involves writing an image processing program in c++ 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 MSci students are marked `harder' and more than undergraduate BSc students.

Assessment

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.

Deadline

The deadline is the end of Week 11, 23:59:59, Friday 9 December 2011. You must submit your zipped programmes before the deadline. Please see here for how to submit your coursework. We will download your programmes and ask you to demostrate for assessment.

As default submissions are open for one week after the deadline for late submissions, but penalty of 5% per day is applied in the school cw system after the deadline times above and the Max penalty is 25%. All DL deadlines will be set one week after campus deadlines.

Demonstration will take place in the last lab session of the term. This will be on Monday 12th December 2011. Any coursework not marked on these dates will recieve zero. If you have a valid reason for not being available on the dates, then tell the TAs AT LEAST A WEEK BEFORE IT HAPPENS, and we will arrange another time. You must also provide documentary evidence of forced absence.

Coursework

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

  • loads and displays an image, pixel value rescaling and shifting [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:

  • thresholding [15%]
  • histogram equalisation [25%]

3. Enhance the program to be able to select an 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 40% it does not necessarily mean that you will get 40%, 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.

Some Notes

  1. the demos will be carried out under linux on the 2nd floor ITL, so if you work from home (or under windows) please do make sure it does work there
  2. you must use the g++ compiler.
  3. you must use wxwindows if you want a "windowy" application rather than a command line.

Using Microsoft Visual C++ and MFC is *not* acceptable. Nor is Borland Builder or any other. This is a course about c++, and as such we choose to use the best available compiler and the easiest windowing library.

If you want to use linux and g++ with another windowing library, e.g. GLUT, then please inform the TAs in the lab session.

Working from home

If you want to work from home, then g++ and wxwindows are easy to install under linux. If you must use windows, cygwin is one option. it comes with gcc/g++ and wxwindows does work as well.

However, it is very easy installing a dual boot linux machine at home. Burn and use the CD/DVD ISOs in /import/iso using the burners on the second floor ITL.

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