Spaces:
Running
Running
| from pathlib import Path | |
| import csv, json, cv2 | |
| ROOT = Path(__file__).resolve().parents[1] | |
| img = cv2.imread(str(ROOT / "template.jpg")) | |
| config = json.loads((ROOT / "template.json").read_text(encoding="utf-8")) | |
| bw, bh = config.get("bubbleDimensions", [60, 30]) | |
| answers = {} | |
| import re | |
| def start(block): | |
| return int(re.search(r"q(\d+)", block["fieldLabels"][0]).group(1)) | |
| for block in sorted(config["fieldBlocks"].values(), key=start): | |
| ox, oy = block["origin"] | |
| for row in range(5): | |
| q = start(block)+row | |
| choice = (q-1)%4 | |
| answers[q] = "ABCD"[choice] | |
| x = int(ox + choice*block["bubblesGap"]); y=int(oy+row*block["labelsGap"]) | |
| cv2.rectangle(img,(x+11,y+6),(x+bw-11,y+bh-6),(15,15,15),-1) | |
| out = ROOT / "samples" / "sample_filled_clean_regenerated.jpg" | |
| cv2.imwrite(str(out), img, [int(cv2.IMWRITE_JPEG_QUALITY),95]) | |
| print(out) | |