Search code examples
vb.netimage-processingomr

OMR program using VB.Net


I have some scanned BMP images or OMR bubble Sheet. I have to read the marks in it. I want to do this work using VB.NET. the following tasks I have to perform-

  1. Deskew the images
  2. Find reference points (4 squares, in my case)
  3. Crop the images based on the reference points.
  4. Read the circular marks.

Now how to do this?


Solution

  • What I need is actually an Image Processing Library. openCV will come at first in mind. But openCV directly is not compatible with .NET languages. There is EmguCV, what is actually an openCV wrapper for .NET framework.

    But in my case I used Aforge.NET. It is a C# framework for CV and Artificial Intelligence - image processing, neural networks, genetic algorithms, machine learning, robotics, etc. It is easy to learn and implement. This framework is well documented here and totally compatible with VB.NET.

    openCV can also be used for this purpose but that would be a bit tricky. One way can be developing Dynamic Link Library DLL) in C++ (Or in any other OpenCV supported language) and then using those function from a VB.NET application.

    The reference points can be detected by bloob detection or contour analysis and filtering the result will give the reference points. Then the resizing, cropping, deskewing and perspective wrapping can be performed using the image processing library or framework being used.