Przegląd funkcji

Przegląd funkcji

Aspose.OMR FOSS dla Python obejmuje trzy warstwy: projektowanie szablonu, generowanie obrazu strony i deskryptora z niego oraz rozpoznawanie znaków ze zeskanowanej kopii.


Projektowanie szablonu

Szablon jest drzewem konfiguracji elementów z korzeniem w TemplateConfig. Elementy pytań obejmują ChoiceBoxConfig (stałe bąbelki opcji), CheckBoxConfig (checkboxy dowolnego znaku), GridConfig i CompositeGridConfig (macierze cyfr/symboli scalone w jedną wartość) oraz AnswerSheetConfig (numerowane macierze bąbelków odpowiedzi). Kontenery układu (BlockConfig, ContainerConfig, PositionedBlockConfig) kontrolują krawędzie, kolumny i pozycjonowanie bezwzględne. To samo drzewo może być zbudowane z kompaktowego DSL tekstowo-markup zamiast obiektów Python.

Generation

OmrEngine.Generate() renderuje szablon do GenerationResult — obrazu strony plus deskryptora .omr JSON. MemoryGenerationResult udostępnia ten sam wynik jako strumienie w pamięci poprzez GetImages()/GetOmr() dla wywołujących, którzy nie chcą mieć kontaktu z systemem plików.

Recognition

TemplateProcessor.Recognize() odczytuje jeden zeskanowany obraz względem szablonu, z którego został utworzony. RecognizeFolder() wykonuje to w partiach dla każdego obrazu w folderze. Recalculate() ponownie ocenia już rozpoznany wynik z innym progiem, nie wczytując ponownie obrazu źródłowego. Korekcja odchylenia (de-skew) używa znaków odniesienia w narożnikach (ReferencePointsSettings).

Eksport wyników

RecognitionResult eksportuje do CSV, JSON lub XML, każdy z odpowiadającą wariantą strumienia w pamięci (GetCsvAsStream, GetJsonAsStream, GetXmlAsStream).

Enumy systemu pisma i przepełnienia

Arabic, Hebrew, Persian, Urdu i Bengali systemy pisma (wraz z Western), oraz enumy LongWordHandling/OverflowAction, są dostępne i poprawnie parsują przy zachowaniu dokładności API na powierzchni Aspose.OMR. Żaden z nich nie jest jeszcze obsługiwany przez silnik renderujący tej wersji — renderowanie jest jedynie LTR/zachodnie, a zachowanie przy przepełnieniu nie jest jeszcze konfigurowalne. Oba elementy są śledzone w roadmapie upstream.


Wskazówki i najlepsze praktyki

  • Używaj DSL-u znaczników dla prostych formularzy; przełącz się na drzewo TemplateConfig typu code-first, gdy potrzebujesz programistycznej kontroli nad rozmieszczeniem elementów.
  • FormValidationLogic.Exception zgłasza naruszenia wielokrotnego wyboru natychmiast, zamiast cicho je ignorować, w przypadku pytań z wyłączonym wielokrotnym wyborem.
  • Preferuj RecognizeFolder() zamiast samodzielnego pętlowania wywołań Recognize() podczas przetwarzania partii skanów.
  • Wywołaj Recalculate() zamiast ponownego skanowania, gdy potrzebujesz jedynie wypróbować inny próg rozpoznawania.

Typowe problemy

ProblemPrzyczynaNaprawa
SaveAsPdf() generuje NotImplementedErrorEksport do PDF nie jest zaimplementowany w tej wersjiUżyj Save() do wyjścia PNG, lub wyeksportuj wyniki rozpoznawania jako CSV/JSON/XML
Niedozwolona odpowiedź wielokrotnego wyboru jest cicho akceptowanaDomyślne FormValidationLogic.Ignore nie podnosi wyjątku przy naruszeniachPrzekaż FormValidationLogic.Exception do GetTemplateProcessor(), i upewnij się, że Multiselect pytania jest wyłączone

FAQ

Czy biblioteka wymaga jakiegokolwiek interfejsu GUI lub zewnętrznego sprzętu OMR?

Nie. Działa w pełni na plikach graficznych (skanach lub zdjęciach) przy użyciu numpy, opencv-python i Pillow.

Czy mogę wygenerować PDF szablonu?

Nie w tej wersji — GenerationResult.SaveAsPdf() i MemoryGenerationResult.GetPDF() wywołują NotImplementedError. Użyj wyjścia PNG z Save()/GetImages() zamiast tego.

Jak przetworzyć wiele zeskanowanych formularzy jednocześnie?

Użyj TemplateProcessor.RecognizeFolder(folderPath, recognitionThreshold), aby rozpoznać każdy obraz w folderze jednym wywołaniem.


API Reference Podsumowanie

Klasa/MetodaOpis
OmrEngine.GenerateRenderuje szablon do obrazu strony + .omr descriptor
OmrEngine.GetTemplateProcessorŁaduje .omr descriptor do rozpoznawania
TemplateProcessor.RecognizeRozpoznaje jeden zeskanowany obraz
TemplateProcessor.RecognizeFolderRozpoznaje każdy obraz w folderze
TemplateProcessor.RecalculatePonownie ocenia wynik z nowym progiem
RecognitionResult.GetCsv / GetJson / GetXmlEksportuje wyniki rozpoznawania

Zobacz także

 Polski