Özellikler Genel Bakış
Özellikler Genel Bakışı
Aspose.OMR FOSS for Python üç katmanı kapsar: bir şablon tasarlama, ondan bir sayfa görüntüsü ve tanımlayıcı oluşturma ve taranmış bir kopyadan işaretleri tanıma.
Şablon Tasarımı
Bir şablon, TemplateConfig kökenli öğe yapılandırmalarının bir ağacıdır. Soru öğeleri ChoiceBoxConfig (sabit seçenek baloncukları), CheckBoxConfig (herhangi bir işaret kutusu), GridConfig ve CompositeGridConfig (tek bir değere birleştirilmiş rakam/simge matrisleri) ve AnswerSheetConfig (numaralı cevap-balon matrisleri) içerir. Yerleşim kapsayıcıları (BlockConfig, ContainerConfig, PositionedBlockConfig) kenarlıkları, sütunları ve mutlak konumlandırmayı kontrol eder. Aynı ağaç, Python nesneleri yerine kompakt bir metin-işaretleme DSL’si ile oluşturulabilir.
Generation
OmrEngine.Generate() bir şablonu bir GenerationResult olarak işler — bir sayfa görüntüsü ve .omr tanımlayıcı JSON. MemoryGenerationResult, dosya sistemine dokunmak istemeyen çağırıcılar için aynı çıktıyı GetImages()/GetOmr() aracılığıyla bellek içi akışlar olarak sunar.
Recognition
TemplateProcessor.Recognize() bir taranmış görüntüyü oluşturulduğu şablona karşı okur. RecognizeFolder() bunu bir klasördeki her görüntüye toplu olarak uygular. Recalculate() kaynak görüntüyü yeniden okumadan, farklı bir eşik ile zaten tanınmış bir sonucu yeniden puanlar. De-skew düzeltme, köşe referans işaretlerini (ReferencePointsSettings) kullanır.
Sonuç Dışa Aktarımı
RecognitionResult CSV, JSON veya XML formatına dışa aktarır, her biri eşleşen bellek içi akış varyantı (GetCsvAsStream, GetJsonAsStream, GetXmlAsStream) ile birlikte.
Yazı Sistemi ve Taşma Enums
Arabic, Hebrew, Persian, Urdu, ve Bengali yazı sistemleri (Western ile birlikte), ve LongWordHandling/OverflowAction enumları, API doğruluğu için Aspose.OMR yüzeyiyle mevcut ve doğru şekilde ayrıştırılıyor. Hiçbiri bu sürümün render engine’i tarafından henüz desteklenmiyor — renderleme yalnızca LTR/Western-only ve overflow behavior henüz yapılandırılamıyor. Her ikisi de upstream roadmap’te izleniyor.
İpuçları ve En İyi Uygulamalar
- Basit formlar için markup DSL’yi kullanın; öğe yerleşimi üzerinde programatik kontrol gerektiğinde kod-öncelikli
TemplateConfigağacına geçin. FormValidationLogic.Exception, çoklu seçim devre dışı bırakılmış sorular için çoklu seçim ihlallerini sessizce yok saymak yerine anında gösterir.- Bir tarama topluluğu işlenirken kendiniz
Recognize()çağrılarını döngüye sokmak yerineRecognizeFolder()tercih edin. - Farklı bir tanıma eşiği denemeniz gerektiğinde yeniden tarama yapmak yerine
Recalculate()çağırın.
Yaygın Sorunlar
| Sorun | Neden | Düzeltme |
|---|---|---|
SaveAsPdf() NotImplementedError hatasını oluşturur | PDF dışa aktarımı bu sürümde uygulanmadı | PNG çıktısı için Save() kullanın, ya da tanıma sonuçlarını CSV/JSON/XML olarak dışa aktarın |
| İzin verilmeyen çoklu seçim yanıtı sessizce kabul edilir | Varsayılan FormValidationLogic.Ignore ihlallerde hata oluşturmaz | FormValidationLogic.Exception‘ı GetTemplateProcessor()‘e iletin ve sorunun Multiselect‘nin devre dışı bırakıldığını doğrulayın |
FAQ
Kütüphane herhangi bir GUI veya harici OMR donanımı gerektiriyor mu?
Hayır. numpy, opencv-python ve Pillow kullanarak tamamen görüntü dosyalarından (taramalar veya fotoğraflar) çalışır.
Şablonun bir PDF’sini oluşturabilir miyim?
Bu sürümde yok — GenerationResult.SaveAsPdf() ve MemoryGenerationResult.GetPDF() ikisi de NotImplementedError oluşturur. Bunun yerine Save()/GetImages() çıktısını PNG olarak kullanın.
Birçok taranmış formu aynı anda nasıl işleyebilirim?
Bir klasördeki tüm görüntüleri tek bir çağrıda tanımak için TemplateProcessor.RecognizeFolder(folderPath, recognitionThreshold) kullanın.
API Reference Özeti
| Sınıf/Yöntem | Açıklama |
|---|---|
OmrEngine.Generate | Bir şablonu sayfa görüntüsüne ve .omr tanımlayıcısına dönüştürür |
OmrEngine.GetTemplateProcessor | Tanıma için bir .omr tanımlayıcısını yükler |
TemplateProcessor.Recognize | Tek bir taranmış görüntüyü tanır |
TemplateProcessor.RecognizeFolder | Klasördeki tüm görüntüleri tanır |
TemplateProcessor.Recalculate | Sonucun puanını yeni bir eşik ile yeniden hesaplar |
RecognitionResult.GetCsv / GetJson / GetXml | Tanıma sonuçlarını dışa aktarır |