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. If
that's all you do you will get a grade
of 50%. To get
full marks you need to have a good try at one or more of the additional
sections.
You should use Matlab to complete this assignment.
Hand in a short report on your work, which should be two written sides
of A4 at most, plus any
pictures and plots showing your results and a
print out of your code. 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 on 20th October. 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. This is a tough image,
so don't expect the result to match what a human would accomplish.
- 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. You can do this using Matlab
(look up the function
roipoly
), or using other painting
tools.
- Use your ground truth segmentation to plot an ROC curve for your
thresholding algorithm. What threshold does the ROC curve suggest? You
may have to implement an algorithm to find the point closest to a
desired Operating Point. How
does it compare to your trial and error estimate?
- 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 do one part at least.
- 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. Show the seeds you chose.
- Attempt to improve segmentation by first normalizing by a
hand-made background. Where does this help or hurt?