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.