QR Answer-Sheet Cropper – Crop Every Answer Box
Print a QR on each sheet, scan a mixed batch, and get every answer cell back as a clean, aligned image.

One-time purchase.
What it is
QR-Anchored Answer Sheet Cropper is a Python and OpenCV tool for scanned exams. Print a small QR on each sheet and drop in a mixed scanner batch. It identifies each page by its QR, pairs fronts and backs, corrects rotation and skew, and crops every answer cell into a clean, aligned image at about 200 dpi. It runs offline.
Quick start
pip install -r requirements.txt
python demo.py
open out/Compared with
| Tool | Type | Notes |
|---|---|---|
| Stack Overflow / OpenCV forum recipes | Free code snippets | QR-anchored perspective warp; you write the rest |
| OMR projects (rbaron/omr, OMR-Grader) | Free open source | Bubble grading |
| Dynamsoft Document Normalizer | SDK | From $1,249/year |
| Aspose.OMR | SDK | From $599 |
| QR Answer-Sheet Cropper | Python package, source included | $39 one-time; batch sorting, front/back pairing and cell cropping |
FAQ
How do I crop answer regions from scanned exam sheets with a QR code?
Print the QR payload on each sheet, scan the batch and run the cropper. It reads the QR in the page corners, warps each answer table to a millimetre grid and cuts every cell.
Can I sort a mixed scanner batch by student?
Yes. Pages are grouped into front/back pairs per student from their QR codes. Pages from another exam are reported as stray.
Does rotation or skew matter?
No. It handles skew and 90/180/270-degree turns.
What scan resolution do I need?
150 dpi or higher. The demo uses 200 dpi.
What do I need to run it?
Python 3.10+, opencv-python-headless and numpy on Windows, macOS or Linux. One-time purchase, full source included.
How do I crop answer boxes from scanned exams with a QR code in Python?
Print the QR on each sheet, scan the batch, and run the demo: each page is identified by its QR, deskewed to the template and cut into one image per answer cell.
Which tier should I buy?
Personal is for one person, and that includes shipping it inside your own paid or free apps as compiled or bundled code. Commercial is for a company or organisation, where more than one person uses it, and adds priority email support. Neither lets you share the source itself. Both include the full source. One-time purchase.
What do I get after paying?
A zip with the full source, README and runnable demo. Polar shows the download right after checkout and in the receipt email.
One-time purchase.

