How to programmatically read over a scanned document or image

Rohan Büchner picture Rohan Büchner · Dec 20, 2011 · Viewed 13.8k times · Source

I've searched around on the net, as I'm a bit of a n00b when it comes to OCR, and I'm actually not sure where a good starting point would be.

I'd like to build an app that will be able to identify & count say for example how many check boxes are filled in on any given row of document/image (it could even be another format should anyone know of something that would better suite an application of this type). the ultimate goal being to eliminate manual data capturing and speed up the process of getting the overall statistics to the end user of the application

I code in c# primarily, so a .net solution would be preferable, but if not I'll take what i can get.

What i had in mind was to redesign the forms the users fill in to something similar to this. (excuse the crude ASCII art :P) so the person filling in the form only has to check a value on the paper.

                |  1  |  2  |  3  |  4  |  5  |  
Product A       | [ ]   [ ]   [ ]   [ ]   [x] |    
Product B       | [ ]   [ ]   [x]   [ ]   [ ] |

any ideas would be greatly appreciated

Thank you!

Answer

mevatron picture mevatron · Dec 20, 2011

1) You could also check the free, but very capable Tesseract OCR engine. It is written in C++, but you could probably use C# to easily interface to it.

2) If you would like to roll your own with image processing, you could look at using the EmguCV library, which is the .NET wrapper for OpenCV.

There was a recent post on the opencv-tag, which was trying to solve a very similar problem to yours that involved detecting marks on a lotto card.