O Optical Mark Recognition, abreviado como OMR, é frequentemente usado para avaliar questionários, pesquisas e outros padrões de coleta de informações. Neste artigo, você pode aprender como criar e verificar as folhas de respostas de perguntas e bolhas do OMR usando a linguagem C# em um aplicativo .NET. Vamos explorar brevemente as seguintes abordagens:

OMR Template Creator and Checker API – Instalação Criar modelo de folha de perguntas OMR, imagem e arquivo PDF usando C# Executar OMR em Imagens de Folha de Respostas de Bolha de Múltipla Escolha usando C#

Criador de modelo OMR e API do verificador – Instalação

Para criar modelos OMR e realizar operações OMR em aplicativos C# ou VB.NET, primeiro precisamos instalar o Aspose.OMR for .NET API. Você pode baixá-lo facilmente de New Releases ou com o seguinte comando NuGet:

Install-Package Aspose.OMR -Version 20.6.0

Portanto, agora estamos prontos para continuar criando recursos de folha de perguntas de múltipla escolha com a API usando C#:

Criar modelo de folha de perguntas OMR, imagem e arquivo PDF usando C#

Vamos explorar a criação de recursos de folha de perguntas OMR. Aqui, armazenaremos perguntas de amostra em um arquivo TXT que posteriormente será utilizado pelo mecanismo OMR para criar o modelo de papel de perguntas OMR, imagem e arquivo PDF. Além disso, a seguir está a marcação de texto que usaremos como entrada para o mecanismo 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________________________________

Agora, seguiremos estas etapas com código C# para criar o OMR Multiple Choice Question Sheet:

  1. Inicializar motor OMR
  2. Chame o método GenerateTemplate com marcação de texto
  3. Salvar folha de perguntas de saída OMR

O trecho de código a seguir é baseado nestas etapas que mostram como criar modelo de folha de perguntas OMR, imagem e arquivo PDF usando C#:

// inicializar o mecanismo OMR
OmrEngine engine = new OmrEngine();

// geração de modelo de chamada fornecendo caminho para o arquivo txt com marcação
GenerationResult res = engine.GenerateTemplate(Path.Combine(testFolderPath, "Grid.txt"));

// verifique em caso de erros
if (res.ErrorCode != 0)
{
    Console.WriteLine("ERROR CODE: " + res.ErrorCode);
}

// você pode usar uma das seguintes abordagens
// salvar o resultado da geração: modelo PDF e .omr
res.SaveAsPdf(testFolderPath , "Grid");
// salvar o resultado da geração: imagem e modelo .omr
res.Save(testFolderPath, "Grid");

Por isso, criamos o papel de perguntas OMR, conforme mostrado na captura de tela a seguir. Você pode distribuir artigos imprimindo o arquivo PDF ou imagem gerada conforme suas necessidades.

Modelo OMR

Execute OMR em imagens de folha de respostas de bolha de múltipla escolha usando C#

Por fim, você coletaria as respostas em folhas de respostas de bolhas geradas e, em seguida, capturaria imagens ou as digitalizaria para executar OMR usando C#. Neste exemplo, vamos considerar a seguinte imagem de amostra. Aspose.OMR para .NET API criará um arquivo separado por vírgula (CSV) como a saída da execução do OMR.

criar omr

Vamos seguir estas etapas para executar o OMR usando C#:

  1. Especifique o caminho do arquivo de modelo
  2. Especifique o caminho do arquivo de imagem digitalizada
  3. Inicialize TemplateProcessor
  4. Reconhecer imagens com o método RecognizeImage
  5. Gravar a saída CSV no arquivo TXT

O trecho de código abaixo mostra como executar OMR em imagens de folha de respostas de bolha de múltipla escolha em C#:

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

// preparação de entrada e saída
string testFolderPath = dataDir;
string templatePath = Path.Combine(testFolderPath, TemplateName);

// chamadas de API OMR reais
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"));
}

A captura de tela a seguir mostra com que eficiência e precisão o arquivo CSV de saída é gerado com Aspose.OMR para .NET API. Essas informações CSV agora podem ser processadas de acordo com o design do seu sistema.

executar omr

Conclusão

Em poucas palavras, aprendemos como criar folhas de perguntas e, posteriormente, realizar operações OMR para marcar imagens de folhas de respostas de bolhas usando C#. Esta criação de folhas OMR e, em seguida, realizar operações OMR em imagens é muito útil em diferentes métodos de pesquisa. Além disso, em caso de dúvidas ou dúvidas, você pode entrar em contato conosco por meio de Fóruns de suporte gratuito.

Veja também