What is the easiest learning curve to develop a Mark Reader software? I am a C# programmer and have a project to create a Mark Reader software. Bubble sheets that have been filled in by students are scanned using a general scanner (as opposed to a special scanner for bubble sheet). The resulting images must be processed using the Mark Reader software in question.

I have a bit knowledge in DSP. Shortly speaking, what is the easiest learning curve to develop the software? Book recommendation is also welcome.
EMGU is a .NET wrapper for OpenCV which is a powerful library for computer vision applications.

You could use something like blob detection to set up the layout of your grid of answers in space, check the pencil shading against a threshold (to prevent erasures from being detected as answers), check that there's one answer per question, and that it's in the right spot.

Get some "toy" problems going with the library first (detect a circle or a square in a field) and build up your implementation from there.