Ocropus Windows Installer

  1. Ocropus Windows Installer For Windows 10

I am trying to create an answer paper marking (multiple choice question) python application. The answer sheet will be scanned into image file (gif,png,jpg,whichever format is needed). My App has access to the database where all the answers are stored.

Ocropus Windows InstallerOcropus Windows Installer

Ocropus Windows Installer For Windows 10

So,all it need is some kind of data from scanned image so that it can compare the answer and calculate the marks. The answer sheet has fixed dimensions with the table format like this ( Answers will be marked by 'X' by the candidate to indicate their answers): After searching through the internet, i found that there are a few OCR APIs available. First one is Pytesser. It is very easy to use and the results are quite okay. But it only work for the images with just pure texts. So, i think it is not suitable.

OCR with OCRopus and Tesseract While OCRing a batch of images through OmniPage the other day, I was silently cursing my computer. I had about 1,500 pages, and OmniPage was crashing after every second or third image. 1) Download and install MSys using the installer If your build directory has spaces in you need to use the DOS style representation of the path when telling MSys where the MinGW install is, e.g. In the fstab C:/PROGRA1/MinGW /mingw You can find out the DOS style name using 'dir /x'. Better still, use directories with no spaces!

The second one i found is Ocropus. It seems powerful but in it's documentation Windows OCRopus relies a lot on POSIX path names and file systems. You may be able to install OCRopus on Windows using.

To install OCRopus dependencies system-wide: $ sudo apt-get install $(cat PACKAGES) $ wget -nd $ mv en-default.pyrnn.gz models/ $ sudo python setup.py install. Alternatively, dependencies can be installed into a Python Virtual Environment: $ virtualenv ocropus_venv/.

An easier way is to install VirtualBox and run OCRopus in Ubuntu under VirtualBox. So i think it is mostly for linux. I could not find a detail installation guide for window platform. ( I am a beginner, so i could be wrong) The third one i found is python-tesseract, a wrapper for Tesseract OCR. In their, the installation guide was provided. Basically, i need,. python-tesseract-win32.deb.

python-opencv. numpy but i have no clue on how to install.deb files on window.

Windows installer package

I have the opencv and nampy already installed. So the following are my questions: (1) In which way can i convert the table image into processable data(is it even possible?)? (2) Is there any other useful OCR APIs that i have not mentioned here that could be helpful? (3) Finally, (my silly idea) Is it possible to split the image into small chucks(based on the size of the table cells - since the table dimensions are known) using PIL and then use pytesser to convert each small images into text, thereafter process the data accordingly?

FYI: I only need it for Windows Platform, possibly for windows xp 32 bits. I am using python 2.7.5.

Answers correspond to your numbers 1) OCR is in general very hard, but (good news for you) for test score processing, I think it is nearly a solved problem. In this vein there are tried and true solutions for such problems.

School systems have been doing this to automate grading 'scantron' tests for years, so if you have access to such resources going that route might be your best bet. At least you should check how they do it 2) I am sure there are others, but those are the main free ones I know of 3)a I think if you are trying to do this on a budget and time is less an issue, your 'silly' idea is actually not silly at all. It might be the best way to do it, and it is likely that the scantron test graders use a similar method. You know the exact dimensions of the test form. You can know the direct pixel mapping of where to look. You could use pytesser very easily.

Keep in mind that pytesser sometimes needs you to resize the image (sometimes up, sometimes down) to get the best accuracy. 3)b You might want to consider rolling your own solution.

You could use the concept of morphological operations (numpy and other image libraries can do this nearly out of the box). You might not even need these operators and simply do a binary threshold of the table rows (assuming you have already cut the image into table rows) and simply look for blobs and mark the score as coming from the column with the most blob values.