Visão Geral dos Recursos

Visão Geral dos Recursos

Visão Geral dos Recursos

Aspose.OMR FOSS para Python cobre três camadas: projetar um modelo, gerar uma imagem de página e descritor a partir dele, e reconhecer marcas de uma cópia digitalizada.


Design de Modelo

Um modelo é uma árvore de configurações de elementos enraizada em TemplateConfig. Os elementos de pergunta incluem ChoiceBoxConfig (bolhas de opção fixa), CheckBoxConfig (caixas de seleção de marca livre), GridConfig e CompositeGridConfig (matrizes de dígitos/símbolos mescladas em um único valor), e AnswerSheetConfig (matrizes numeradas de bolhas de resposta). Contêineres de layout (BlockConfig, ContainerConfig, PositionedBlockConfig) controlam bordas, colunas e posicionamento absoluto. A mesma árvore pode ser construída a partir de um DSL compacto de marcação de texto em vez de objetos Python.

Generation

OmrEngine.Generate() renderiza um modelo em um GenerationResult — uma imagem de página mais um descritor .omr JSON. MemoryGenerationResult expõe a mesma saída como streams em memória via GetImages()/GetOmr() para chamadores que não desejam tocar no sistema de arquivos.

Recognition

TemplateProcessor.Recognize() lê uma imagem escaneada em relação ao modelo a partir do qual foi criado. RecognizeFolder() processa isso em lote para cada imagem em uma pasta. Recalculate() recalcula a pontuação de um resultado já reconhecido com um limiar diferente sem reler a imagem de origem. A correção de desalinhamento usa marcas de referência nos cantos (ReferencePointsSettings).

Exportação de Resultados

RecognitionResult exporta para CSV, JSON, ou XML, cada um com uma variante de fluxo em memória correspondente (GetCsvAsStream, GetJsonAsStream, GetXmlAsStream).

Enums de Sistema de Escrita e de Overflow

Arabic, Hebrew, Persian, Urdu e Bengali sistemas de escrita (junto com Western), e os enums LongWordHandling/OverflowAction, estão presentes e são analisados corretamente para fidelidade API com a superfície Aspose.OMR. Nenhum deles é ainda respeitado pelo motor de renderização desta versão — a renderização é apenas LTR/Ocidental, e o comportamento de overflow ainda não é configurável. Ambos estão rastreados no roadmap upstream.


Dicas e Melhores Práticas

  • Use a DSL de marcação para formulários simples; troque para a árvore TemplateConfig orientada a código quando precisar de controle programático sobre a colocação dos elementos.
  • FormValidationLogic.Exception expõe violações de seleção múltipla imediatamente em vez de ignorá-las silenciosamente, para perguntas com seleção múltipla desativada.
  • Prefira RecognizeFolder() em vez de fazer chamadas Recognize() em loop ao processar um lote de digitalizações.
  • Chame Recalculate() em vez de re-digitalizar quando você só precisa testar um limiar de reconhecimento diferente.

Problemas Comuns

ProblemaCausaCorreção
SaveAsPdf() levanta NotImplementedErrorA exportação de PDF não está implementada nesta versãoUse Save() para saída PNG, ou exporte os resultados de reconhecimento como CSV/JSON/XML
Uma resposta de seleção múltipla não permitida é aceita silenciosamenteO FormValidationLogic.Ignore padrão não levanta em violaçõesPasse FormValidationLogic.Exception para GetTemplateProcessor() e assegure que o Multiselect da pergunta esteja desativado

FAQ

A biblioteca requer alguma GUI ou hardware OMR externo?

Não. Ela funciona totalmente a partir de arquivos de imagem (digitalizações ou fotos) usando numpy, opencv-python e Pillow.

Posso gerar um PDF do modelo?

Não nesta versão — GenerationResult.SaveAsPdf() e MemoryGenerationResult.GetPDF() ambos geram NotImplementedError. Use a saída PNG de Save()/GetImages() em vez disso.

Como faço para processar muitos formulários digitalizados de uma vez?

Use TemplateProcessor.RecognizeFolder(folderPath, recognitionThreshold) para reconhecer cada imagem em uma pasta em uma única chamada.


API Reference Resumo

Classe/MétodoDescrição
OmrEngine.GenerateRenderiza um modelo em uma imagem de página + descritor .omr
OmrEngine.GetTemplateProcessorCarrega um descritor .omr para reconhecimento
TemplateProcessor.RecognizeReconhece uma imagem escaneada
TemplateProcessor.RecognizeFolderReconhece todas as imagens em uma pasta
TemplateProcessor.RecalculateReavalia um resultado com um novo limiar
RecognitionResult.GetCsv / GetJson / GetXmlExporta resultados de reconhecimento

Ver também

 Português