GV12/3072
Coursework 2
This is the second
coursework on Image Processing. This coursework is
about using mathematical morphology to perform optical character
recognition. For a basic pass in the coursework, you need to make a
good attempt at the core section. To get full marks you must 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, 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. Make sure it is clear what commands you used to generate
each of the pictures you include.
The hand-in deadline for this coursework is 12:00 on 10th February.
Hand in your report to on paper,
just like last time. Make sure you submit a completed coursework cover
sheet to your work to the CS departmental office.
Core section
Write a matlab program
"findCharacter.m" that uses binary image processing methods such as
imerode and imdilate (no bwhitmiss please) to find instances of the
lower case letters 'e' in the following two relatively noise-free
scanned texts of the same font and size:
The output should be two images in which the detected letters appear
highlighted in a color, and all other text and symbols appear in black.
- Read about morphological
operations in Matlab. In particular, look up the functions
imerode
,
imdilate
(or erode
and dilate
in older versions of matlab) and bwmorph
and try them out
on a few simple examples.
- Once you can
render a binary image with the location and extent
of each detected letter, you can superimpose that on the all-text
binary image as a 3rd color (switching back to uint8 or double). One
way to then show the 'e' in color is to follow imshow() with
colormap(cmap);, where the cmap variable contains 111 for white, 000
for black, and another triple for the 3rd color.
- Include your code and show your work, so at the
least, list your
steps, and explain what parameters / structuring elements you used, and
why.
- Other good things to include: assumptions and the weaknesses of
the particular technique employed. How does your program fail and why?
How would you extend the program to make it more general? What have you
learned?
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.
- Do the same for the letters 'a',
'i', 'o', and 'u'. In other words, make it general for all five of the
vowels. Output should show detections using 5 different colors.
- Find the letter 'e' or the other vowels in the following image,
and also report timings using the tic and toc functions:
- Find some other image where a similar binary morphology algorithm
could be used to detect something. Do it.
- Use some other method, not based on erosion and dilation, to
detect one or more specific vowels.