GV12/3072
Coursework 1
This is the first
coursework for course GV12/3072 on Image Processing. The subject of the
coursework is simple image segmentation. For a basic pass in the
coursework, you need to make a good attempt at the core section. To get
full marks you need to have a good go at one or more of the additional
sections.
I recommend you use matlab.
Hand in a short report on your work. This should consist of a
short report of NO MORE THAN 2 written sides plus NO MORE THAN 2 pages
of pictures and plots showing your results and a print out of your
code. Anything that exceeds these limits will be ignored. The short
report should start with a brief list of what you have attempted and to
what extent you have acheived each item. Next, write a short
description of the methods you used for each part together with any
conclusions you have drawn from your experiments.
The hand-in deadline for this coursework is 12:00 noon on 27th January.
Hand
in your report to JJ or Tricia in the CS departmental office. Make sure
you attach a completed coursework cover
sheet to your work.
Core section
Here is a classic image processing
test-image called girlface:
We would like to separate the skin region from the background of the
image and surrounding parts of the head.
- Download the image above and
plot a histogram of the grey levels it contains.
- Write a short program to threshold the image and try to identify
a good threshold by trial and error.
- Create a ground truth segmentation. If you are using Matlab,
look up the function
roipoly
, which will allow you to do
this easily.
- Use your ground truth segmentation to plot an ROC curve for your
thresholding algorithm. What threshold does the ROC curve suggest? How
does it compare to your trial and error estimate?
NOTE: Feel free to use another image
in addition to this one, but clearly define how that segmentation task
has different challenges to the girlface.
Additional section
You do not need to do all of this, but
to get more than a basic pass have a go at one part at least,
preferrably two.
- Examine the effects of noise on
the performance of your segmentation algorithm. Add various levels of
synthetic noise to the face image and
see how the performance changes. You can choose from several types of
noise, but be careful that the image grey levels remain valid after
you add the synthetic noise.
- Implement a region growing algorithm and compare its performance
at segmenting the face in the image above with the performance of the
thresholding algorithm.
- Implement the k-means algorithm with k =2 for automatic threshold
selection. How well does its suggestion match the thresholds chosen by
trial and error and from the ROC curve?
- Implement another segmentation algorithm from the lecture, of
your choice (this may partition the image into multiple regions).
Comment on the
results.