GV12/3072
Coursework 2
This is the second
coursework on Image Processing. This coursework is
about using mathematical morphology to perform optical character
recognition. Note, this is not the state of the art in OCR. For a basic
pass in the coursework, you need to make a
good attempt at the core section. To get full marks you must make
substantial progress on one or more of the additional sections.
I recommend you use matlab.
Hand in a short report, 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 3rd November.
Hand in your report to on paper,
just like last time. Make sure you submit a completed coursework cover
sheet with 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, 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 are not require to do all of
these, but
to get more than a basic pass, you must make substantial progress on one
or more of them.
- Do the same as the core part, but
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.