Android Application: Class Summary from Whiteboard Images

Whiteboard is an Android App designed for new generation students. It allows the student to take images of white board during class and convert them into a PDF file

Whiteboard is an Android App designed for new generation students.
It allows the student to take images of white board during class and convert them into a PDF file which contains all of which was written on the class board by the teacher.
The app is designed to straighten the board, cut it by the edges an reduce reflection.
Finally it adds all images taken by the student to one PDF and saves it to the mobile phone storage.

The main algorithm

Finding board lines and corners

  • Convert image to grayscale
  • Shrinking the image to fixed size
  • Running Canny algorithm on the image
  • Finding lines using HoughTransform
  • Creating artificial edge lines
  • Deleting irrelevant lines
  • Adding additional information to the lines (angle, distance, etc.)
  • Choosing 4 board edge lines
  • Finding board corners

 

Image transformation

  • Creating a square from 4 corner dots
  • Finding suitable transformation for image
  • Conduction transform on image
  • Cropping the image according to transformation

 

Quality improvements

  • Bluring the image (Salt and Pepper)
  • Subtracting blurred image from original

Tools

This App was build in Android development environment using eclipse with SDK within the eclipse environment we have installed a JNI environment in order to be able to use native code of c++ for the algorithm.
First of all we have developed the algorithm for image processing with Matlab. Then we have developed the GUI for the android application. Last we have converted the Matlab code into c++ using OpenCV library and embedded it into the Java (Android) code.

Conclusions

After facing lots of problems we have still remained with a few, we have remained with the problem of long lines drawn inside the board which we have suggested to solve by checking of more information around the line and determine which is line within the borders of the whiteboard and which is not.
Our main conclusion is there are more possibilities to make this algorithm work for wider range of cases.

Acknowledgment

We are grateful to our project supervisor Aviv Tamar and Marina Alterman for their help and guidance
throughout this work. We are also grateful to the Ollendorff Research Center Fund for supporting this project.