0

I want to find an OMR Program (Optical Mark Recognition) to digitalize surveys with an continuous semantic differential scale, however I could only find programs that finds which bubble or box was checked.

Is there a way to use a python library to detect where on an image a cross was made?

It would be possible to either take the absolute position (e.g. the cross in the first row is on location x=8cm and y=4.25cm of the sheet and then calculate the position on the scale with the x value like the scale starts at x = 7 cm and ends x = 12 cm -> 8cm - 7cm is 1cm / 1cm / (12cm - 7cm) = 0,2 So the score is 20 out of 100 (maximum score).

Or relative to some mark like you can see in the line Tag3, Tag4 or Tag5.

The layout and design of the survey can be adapted to make the program more accurate.

If the program could also detect lines like in the examples in the bottom of the photo, that would be even better.

Any help, tutorials or advise is highly appreciated.

The question is basically how to detect the crosses and how to return the locations of it with python.

I have looked for different software that contains that function and was looking for similar problems. I found this post which has a similar problem but is written in C.

Example Scan

Bilal
  • 3,191
  • 4
  • 21
  • 49
flo
  • 1
  • if you have the empty survey with a [fiducial marker](https://en.wikipedia.org/wiki/Fiducial_marker) you can get the rotation/translation of the filled survey, then you do a [background subtraction](https://docs.opencv.org/4.x/d1/dc5/tutorial_background_subtraction.html), simple erosion, then you will have your markers. – Bilal Apr 09 '23 at 08:51

0 Answers0