1. Produkter
  2.   OMR
  3.   Python
  4.   PyOMR
 
  

Detektera & extrahera markerade områden från skannade blad via Python

Öppen källkod gratis Python-baserad OMR-motor som stödjer OMR-behandling. Den stödjer bearbetning av OMR-ark, mallbaserad detektering & hantering av flersidiga formulär och så vidare.

Vad är PyOMR-biblioteket?

Optisk markeringigenkänning (OMR) är en kraftfull teknik som används för att fånga mänskligt markerade data från dokument som enkäter, prov och röstsedlar. Även om kommersiella OMR-lösningar finns, kan utvecklare som söker ett gratis, öppen källkod-alternativ utnyttja PyOMR, ett Python‑bibliotek designat för OMR‑behandling. Utvecklat av pattyjogal möjliggör PyOMR för mjukvaruutvecklare att upptäcka markerade bubblor på skannade formulär med enkel Python‑kod och standardmetoder för bildbehandling. Det stödjer att upptäcka och extrahera markerade områden från skannade blad, bearbeta flervalsformulär, enkäter och bedömningar samt anpassa OMR‑mallar för olika användningsområden.

PyOMR är en Python-baserad OMR-motor utformad för att upptäcka ifyllda markeringar på fördefinierade formulär, såsom flervalsprovblad eller enkätrespons. Den utnyttjar bibliotek som OpenCV för bildbehandling och tillhandahåller ett mallbaserat system för att definiera förväntade markeringsområden på bladet. Oavsett om du är en mjukvaruutvecklare som bygger ett betygssystem, en lärare som automatiserar provutvärderingar, eller en organisation som samlar in enkätdata, låter PyOMR dig integrera OMR-funktionalitet direkt i din app. Med ett mallbaserat tillvägagångssätt, OpenCV-drivet upptäckt och full skriptbarhet är det ett idealiskt val för utvecklare som vill bygga automatiserade formulärbehandlingsverktyg utan att förlita sig på tredjepartstjänster.

Previous Next

Komma igång med PyOMR

Det rekommenderade sättet att installera PyOMR-biblioteket är att använda GitHub. Använd följande kommando för en smidig installation

Installera PyOMR-biblioteket via GitHub

 git clone https://github.com/pattyjogal/pyomr.git
cd pyomr
 

Installera stödda bibliotek via GitHub

 pip install opencv-python numpy 

Du kan ladda ner biblioteket direkt från GitHub

Automatisk bildförbehandling via Python

• Det öppna källkods-biblioteket PyOMR har inkluderat fullständigt stöd för automatisk bildbehandling i Python‑applikationer. Biblioteket har inbyggda funktioner för deskewing (rättning av snedvridna skanningar), tröskelvärdesättning för att konvertera till svartvitt för bättre markeringdetektering och brusreducering för att förbättra noggrannheten i lågkvalitativa skanningar. Dessutom gör det verktyget möjligt att hantera vanliga problem i skannade formulär som ljusvariationer, låg kontrast eller mindre feljustering. Följande kodexempel visar hur man bearbetar bilder i Python‑applikationer.

Hur bearbetar man bild i Python-appar?

from omr import omr_engine

# File paths
template_path = "config.json"
image_path = "answer_sheet.jpg"

# Run the OMR process
results = omr_engine.process_image(image_path, template_path)

# Output the results
for i, response in enumerate(results, 1):
    print(f"Q{i}: {response if response else 'No mark detected'}")

Mallbaserad detektering via Python

PyOMR använder en JSON‑mall för att definiera layouten på ditt svarspapper. Detta inkluderar antalet frågor, antal svarsalternativ per fråga, startpositionen för den första bubbla, avståndet mellan rader och kolumner samt bubbeldimensioner. Detta gör systemet mycket flexibelt och återanvändbart för olika layouter. Här är ett enkelt exempel som visar hur man skapar en JSON‑mall för att specificera bubbla‑positioner med Python‑biblioteket.

Hur skapar man en JSON-mall för att specificera bubbla‑positioner och ladda den via Python?

{
  "bubbles": [
    {"question": "Q1", "options": ["A", "B", "C", "D"], "coords": [100, 150, 30, 30]},
    {"question": "Q2", "options": ["A", "B", "C", "D"], "coords": [100, 200, 30, 30]}
  ],
  "reference_marks": [[50, 50], [500, 50], [50, 700]]
}
#Load template
omr.load_template("template.json")

Hantera flersidiga formulär via Python

PyOMR-biblioteket har inkluderat stöd för att hantera flersidiga formulär i Python-applikationer. Oavsett om du bearbetar enkelsidiga svarsscheman eller flersidiga undersökningar, kan PyOMR konfigureras för att hantera olika layouter. Det rekommenderas för flersidiga formulär att behandla varje sida separat: Följande kodexempel visar hur mjukvaruutvecklare kan hantera flersidiga formulär i Python-applikationer.

Hur hanterar man flersidiga formulär via Python-biblioteket?

# for multi-page forms, process each page separately:

for page in omr.multi_page_scan("multi_page_form.pdf"):
    page.preprocess()
    answers = page.read_answers()
    print(answers)

Hantering av brus och förbehandling

Det öppna källkods‑biblioteket PyOMR har tillhandahållit komplett stöd för bildförbehandling och brusreducering i Python‑applikationer. Biblioteket inkluderar bildförbehandling såsom gråskalakonvertering, tröskelvärdesättning och konturdetektion för att på ett pålitligt sätt identifiera markeringar – även med brusiga skanningar eller bristfällig utskrift.

 Svenska