The goal of this project is to enable the use of a stills camera in a frontal lecture for keeping a copy of the lecturer's notes as written on the board.
Abstract
The goal of this project is to enable the use of a stills camera in a frontal lecture for keeping a copy of the lecturer’s notes as written on the board. An algorithm is proposed that executes all necessary processing so we could use pictures of the board as a clear readable and printable copy of the writing on the board, instead of copying the notes of the lecturer from the board. A Graphical User Interface was developed that enables to load and process different pictures easily.
The problem
Pictures from the board look much less satisfying than one could assume:
- Noisy picture: In addition to the notes dirt and remainders from previous writing may appear on the picture which confuse the watcher
- According to the angle of photographing distortions may appear
- Different light conditions influence the brightness and contrast of the pictures and the clearness of the written notes
- Reflections from light sources may dazzle the text and make it almost unreadable
- Unrelevant items (e.g. the wall and other subjects in the classroom) confuse the watcher

Figure 1 – the original picture
The solution
We propose an algorithm that cleans noise, focuses on the actual writing area (i.e. removes unwanted backgound), compensates distortions and enhances the actual notes written by the lecturer.
The solution has 4 main stages:
1. Create a gray level picture- in this part we take the original (color) picture and make out of it a gray-level picture by using only its red component.
2. Clean the picture from single spots by binarization – in this part we convert all the points in the picture below the gray level of 256/2 to 1 (white) and those higher than 256/2 to 0 (black).
3. Find lines – here we use the Hough Transform (see below) to find lines in the binary picture in order to recognize the board’s borders.
4. Eliminate unwanted areas outside of the board using the lines of the board’s borders that were found in step 3.
In some cases we implemented vertical and horizontal interpolation taking into account the distortions of written lines and correct them so we get straight and unic lines of written text. This makes more space between words and letters in the picture in order to make the writing clearer and less crowded.
We created a user interface that runs our program and also enables the user to choose a picture, run our algorithm on it and display and save it.
The Hough Transform
A line can be represented by 2 parameters: m (the line slope) and b (the value of y when x is 0). Given a binary picture (black over white background) we do the following steps in order to find the lines in the picture:
a. Determine the range of lines that we want to find (ranges of m and b).
b. Set the resolution of m and b – how many m values and b values we will check in the range.
c. For any pair of m and b and for each black point check if the x and y values of the point satisfy the equation of the line with parameters m and b. (The number of points that satisfy the equation are called votes).
d. The m and b pairs with the votes larger than a certain threshold are assumed to be significant lines.
Tools
MATLAB version 6.5 was used as software environment. A database of images from lectures at Technion was used as test pictures for the algorithm.
Results
In figures 1 & 2 we can see an original picture (1) and the final picture (2) of that original picture.

Figure 2 – the final picture
Acknowledgment
We are grateful to our project supervisor Johanan Erez for his help and guidance throughout this work.
We are also grateful to the Ollendorff Minerva Center Fund for supporting this project.

