Code Monkey home page Code Monkey logo

open-mcr's People

Contributors

ayalcin1995 avatar dependabot[bot] avatar gutow avatar iansan5653 avatar n1m6 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

open-mcr's Issues

List of images that are bad answer sheets.

I have used the software to check about 200 answer sheets in one go. The software was unable to handle bad answer sheets .

So, I had to physically identify and separate the bad answer sheets.

If its okay, I would like to add a feature where the software will generate a separate output file to show the list of images that were bad-answer-sheets.

bad answer sheets are those that do not have the required corners - it could be due to...

  • bad scans
  • dirty / stained pages
  • images that are not answer sheets at all
  • or any such reason

Add 200question option?

Hey, how long would it take to alter the script for a test with 200 questions? I am trying to prepare a simulation exam for medical students (offered for free) and the exam is a 200 questions one.

I would appreciate and try and help with this feature (I'm a linux engineer, but I'm trying to learn some OpenCV anyway)

Sign the installation binaries

Currently installing the program results in a number of errors due to unsigned binaries. We can improve the experience by signing them.

Threshold for determining bubble fill is static but should be dynamic

Currently, if a scanner that darkens the image is used, extra bubbles (especially the W and M bubbles) will be processed as filled. If a scanner that lightens the image is used, not enough bubbles will be considered. The threshold should either be dynamically created or at least improved per-letter.

Command line arguments don't support quoted file paths

The command line argument parsing functionality is using the native pathlib.Path constructor method to parse file path arguments. However, this fails when a path is quoted using double quotes, like: --formmap = "C:/Test User/data/map.csv". Because this path has a space, double quotes are necessary. But this fails because the quotes are never stripped.

Solution is to just create a custom parsing method that strips quotes if present.

Read all bubbles in a single operation

Currently the utility processes an image and then reads each zone as a separate operation. It would be much more efficient to read the entire sheet at once and calculate the threshold at that time, as the current method results in reading all the name bubbles twice.

Add unit tests

This is critically important - there is no automated testing. We need unit and/or end-to-end testing examining as many scenarios as possible. (edit: we do have E2E testing now but could still use some unit tests).

Gracefully handle when an image is sideways

The software should either provide a more useful error message (it might be simpler to just say "Image X is invalid" rather than "Image X is rotated" since detecting rotation may be difficult), or simply process the image as if it was not sideways (maybe by re-running with 90deg rotation after failure).

Add type definitions for OpenCV and Numpy

For now I am limiting this to solely what types I am actively using in the libraries. IE, if I call numpy.function(A,B,C) then I only define:

def function(A: int, B: int, C: int) -> int: ...

Even if the full function is actually something like:

def function(A: int, B: int, C: int, D: float = 45.5) -> int: ...

Output keys.csv in column form instead of row

This is to make it compatible with existing test analysis software.

Example:

Test Form Code A B
Q1 A A
Q2 C C
Q3 E E
Q4 B B
Q5 E E
Q6 C C
Q7 D D
Q8 E E
Q9 A A
Q10 B B
Q11 C C
Q12 B B
Q13 C C
Q14 A A
Q15 E E
Q16 E E
Q17 E E

Add a command line interface

A CLI would be very useful for debugging and when users want to do bulk processing. The CLI should accept all of the UI inputs as arguments and skip the UI prompt.

CLI design guidelines: https://clig.dev/

The UI currently looks like this:
image

For each input, there would need to be a command line option (ie, --output-path = ../output).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.