Send the link below via email or IMCopy
Present to your audienceStart remote presentation
- Invited audience members will follow you as you navigate and present
- People invited to a presentation do not need a Prezi account
- This link expires 10 minutes after you close the presentation
- A maximum of 30 users can follow your presentation
- Learn more about this feature in our knowledge base article
Implementing OCR in Android applications
Transcript of Implementing OCR in Android applications
An astounding adventure through space and time!
Performed by Pjotter Tommassen
About me! \O/
Exquisite musical tastes!
Hmmm, beer! ^_^
What is OCR?
Why would you want it?
What does it have to do with Android?
Smartphones do have cameras!
Fun implementation details!
or, more realistically..
Or to avoid typing stuff, usability, etc..
byte  img
What? Also, why?
Java Native Interface!
Writing code in C++ is awesome! ^_^
Use C(++) libraries in Java/Android projects!
Boring boilerplate! \O/
Right-click on project -> Android -> Add native code
Java side needs native keyword:
C++ side needs weird naming:
Also weird, albeit functional, parameters...
Open (Source) Computer Vision (Library)
Library with all sorts of neat functions relating to:
computer vision (yes..!)
For what purpose?
Find out what regions of the image being processed contain text..
Turn those regions into something resembling books being scanned...
B. Epshtein, E. Ofek, and Y. Wexler. Detecting text in natural scenes with stroke
width transform. In Proc. CVPR, 2010.
Cong Yao, Xiang Bai, Wenyu Liu, Yi Ma, Zhuowen Tu. Detecting Texts of Arbitrary Orientations in Natural Images. In Proc. CVPR, 2012.
Not a cosmic cube :(
Open Source OCR engine developed by HP Labs (at first), and now Google
Built to scan books and such
Broad strokes overview
Low on code
Link to presentation (and thus stuff referenced) available at the end
Semi-related pictures for those not really interested
Do OpenCV Magic to clarify text!
Get a picture! (Basic Android stuff...)
Extract the text
What is this I don't even:')
Not as useful without the preprocessing
Doesn't work that well with stylized lettering...
OCR is far too complicated for a 30 or so minute presentation.. :')
Apply an OCR engine (Tesseract)
Make it join the C++-side! (JNI)
Translate it to OpenCV
unsigned char *img