Optical Mark Recognition, abbreviato in OMR, viene spesso utilizzato per valutare questionari, sondaggi e altri standard di raccolta di informazioni. In questo articolo puoi imparare a creare e controllare i fogli di domande e risposte a bolle OMR usando il linguaggio C# in un’applicazione .NET. Esploreremo brevemente i seguenti approcci:

API OMR Template Creator e Checker – Installazione Crea modello di foglio delle domande OMR, immagine e file PDF utilizzando C# Esegui OMR su immagini di fogli di risposta con bolle a scelta multipla usando C#

API per la creazione e il controllo di modelli OMR – Installazione

Per creare modelli OMR ed eseguire operazioni OMR in applicazioni C# o VB.NET, in primo luogo è necessario installare Aspose.OMR per .NET API. Puoi scaricarlo facilmente da Nuove versioni o con il seguente comando NuGet:

Install-Package Aspose.OMR -Version 20.6.0

Pertanto, siamo ora pronti per procedere alla creazione di risorse per fogli di domande a scelta multipla con l’API utilizzando C#:

Crea un modello di foglio delle domande OMR, un’immagine e un file PDF utilizzando C#

Esploriamo la creazione di risorse per fogli di domande OMR. Qui memorizzeremo domande di esempio in un file TXT che verrà successivamente utilizzato dal motore OMR per creare il modello di carta delle domande OMR, l’immagine e il file PDF. Inoltre, di seguito è riportato il markup del testo che utilizzeremo come input per il motore OMR:

?text=Name__________________________________ Date____________

?grid=ID
	sections_count=8
#What is Aspose.OMR main function?
	() OCR () Capture human-marked data
	() There is no main function () Enhance images
#Can Aspose.OMR process not only scans, but also photos?
	() Yes, indeed! () No
#Aspose.OMR is available on any platform, because it is:
	() Cross-platform code () Cloud service
#Aspose.OMR works with any kind of OMR forms: tests, exams, questionnaires, surveys, etc.
	() Yes, indeed! () No
#Excellent recognition results can be achieved only for filled bubbles at least for:
	() 40% () 60% () 75% () 98%
#Do you have to mark up every question on the page?
	(Yes) Yes, that will help a lot! (No) No
#Rate your preference from 0 to 9 with "0" being preference towards performance
and "9" being preference towards flexibility.
	(0) (1) (2) (3) (4) (5) (6) (7) (8) (9)
#I found aspose omr to be a useful tool. (5 - strongly agree, 1 - strongly disagree)
	(5) (4) (3) (2) (1)

?text= Answer sheet section
?answer_sheet=MainQuestions
	elements_count=10
	columns_count=5

?text=Sign________________________________

Ora seguiremo questi passaggi con il codice C# per creare un foglio di domande a scelta multipla OMR:

  1. Inizializza motore OMR
  2. Chiama il metodo GenerateTemplate con il markup del testo
  3. Salva il foglio delle domande di output OMR

Il seguente frammento di codice si basa su questi passaggi che mostrano come creare un modello di foglio di domande OMR, un’immagine e un file PDF utilizzando C#:

// inizializzare il motore OMR
OmrEngine engine = new OmrEngine();

// generazione del modello di chiamata che fornisce il percorso del file txt con markup
GenerationResult res = engine.GenerateTemplate(Path.Combine(testFolderPath, "Grid.txt"));

// controllare in caso di errori
if (res.ErrorCode != 0)
{
    Console.WriteLine("ERROR CODE: " + res.ErrorCode);
}

// è possibile utilizzare uno dei seguenti approcci
// salva il risultato della generazione: modello PDF e .omr
res.SaveAsPdf(testFolderPath , "Grid");
// salva il risultato della generazione: immagine e modello .omr
res.Save(testFolderPath, "Grid");

Quindi abbiamo creato la carta delle domande OMR come mostrato nella schermata seguente. È possibile distribuire documenti stampando il file PDF generato o l’immagine secondo le proprie esigenze.

modello OMR

Esegui OMR su immagini di fogli di risposta a bolle a scelta multipla usando C#

Infine, raccoglierai le risposte sui fogli di risposta a bolle generati e quindi acquisirai le immagini o le scansionerai per eseguire l’OMR usando C#. In questo esempio, consideriamo la seguente immagine di esempio. Aspose.OMR per .NET API creerà un file CSV (comma-separated) come output dell’esecuzione di OMR.

crea omr

Seguiamo questi passaggi per eseguire OMR utilizzando C#:

  1. Specificare il percorso del file modello
  2. Specificare il percorso del file di immagine scansionato
  3. Inizializza TemplateProcessor
  4. Riconosci le immagini con il metodo RecognizeImage.
  5. Scrivi l’output CSV nel file TXT

Il frammento di codice seguente mostra come eseguire OMR su immagini di fogli di risposta a bolle a scelta multipla in C#:

string TemplateName = @"Sheet.omr";
string[] UserImages = new string[] { "Sheet1.jpg" };

// preparazione di input e output
string testFolderPath = dataDir;
string templatePath = Path.Combine(testFolderPath, TemplateName);

// chiamate API OMR effettive
OmrEngine engine = new OmrEngine();
TemplateProcessor templateProcessor = engine.GetTemplateProcessor(templatePath);
Console.WriteLine("Template loaded.");

for (int i = 0; i < UserImages.Length; i++)
{
    string imagePath = Path.Combine(testFolderPath, UserImages[i]);
    string csvResult = templateProcessor.RecognizeImage(imagePath).GetCsv();

    File.WriteAllText(Path.Combine(outputPath, Path.GetFileNameWithoutExtension(UserImages[i]) + ".csv"), csvResult);
    Console.WriteLine("Result exported. Path: " + Path.Combine(testFolderPath, Path.GetFileNameWithoutExtension(UserImages[i]) + ".csv"));
}

La schermata seguente mostra l’efficienza e la precisione con cui viene generato il file CSV di output con Aspose.OMR per .NET API. Queste informazioni CSV possono ora essere ulteriormente elaborate secondo la progettazione del sistema.

eseguire omr

Conclusione

In poche parole, abbiamo imparato come creare fogli di domande e successivamente eseguire operazioni OMR per contrassegnare le immagini dei fogli di risposta a bolle usando C#. Questa creazione di fogli OMR e quindi l’esecuzione di operazioni OMR sulle immagini è molto utile in diversi metodi di ricerca. Inoltre, in caso di dubbi o domande, puoi contattarci tramite Forum di supporto gratuito.

Guarda anche