API ile Python içinde nasıl çalışılır

API ile Python içinde nasıl çalışılır

Aspose.OMR FOSS, Python’ın genel API (omr.api) için kasıtlı olarak küçüktür: OmrEngine, TemplateProcessor, ImageCollection ve FormValidationLogic. Bu kılavuz, bunların generate-and-recognize iş akışı boyunca nasıl bir araya geldiğini gösterir.

Adım Adım Kılavuz

Adım 1: Paketi Kurun

git clone https://github.com/aspose-omr-foss/Aspose.OMR-FOSS-for-Python.git
cd Aspose.OMR-FOSS-for-Python
pip install -e .
python -c "import omr; print('Aspose.OMR FOSS for Python is ready.')"

Adım 2: Gerekli Sınıfları İçe Aktarın

from omr.api import OmrEngine, FormValidationLogic

Adım 3: Bir Şablon Oluşturun ve Kaydedin

engine = OmrEngine()
gen = engine.Generate("final-exam.txt")
gen.Save("out", "final-exam")

Adım 4: Tanıma İçin Şablonu Yükleyin

Varsayılan Ignore yerine FormValidationLogic.Exception geçirin, çoklu seçimin devre dışı bırakıldığı sorular için bir ihlalin tetiklenmesini, sessizce kabul edilmesi yerine istiyorsanız.

processor = engine.GetTemplateProcessor("out/final-exam.omr", FormValidationLogic.Exception)

Adım 5: Tanı ve Dışa Aktar

result = processor.Recognize("scan.png")
print(result.GetCsv())

Yaygın Sorunlar ve Çözümler

FormValidationLogic.Exception asla hata oluşturmaz, çoklu işaretli bir soruda bile. Kontrol yalnızca bir soruda … için tetiklenir. Multiselect devre dışı; GlobalPageSettings.Multiselect varsayılan olarak etkindir, bu yüzden tek seçim olmasını beklediğiniz soru için açıkça devre dışı bırakıldığını onaylayın.

Bir seferde birden çok taramayı tanımam gerekiyor. Kullan TemplateProcessor.RecognizeFolder(folderPath, recognitionThreshold) çağırmak yerine Recognize() bir döngüde.

Zaten kullanılan bir isim altında bir görüntü kaydettim. ImageCollection.Add üzerine yazmaz — kontrol Contains(name) ilk olarak, ya da her görüntü için benzersiz bir ad kullanın.

Sıkça Sorulan Sorular

OmrEngine birden fazla şablonda yeniden kullanmak güvenli mi?

Evet — durum bilgisizdir.

Farklı bir eşik ile bir sonucu yeniden puanlamak, yeniden taramadan nasıl yapılır?

TemplateProcessor.Recalculate(result, recognitionThreshold) çağırın.

Diskten okumak yerine bellekteki bir resmi işaretleme diline nasıl gömebilirim?

ImageCollection.Add(name, image_bytes) ile kaydedin, ardından işaretleme dilinde ?image=<name> olarak referans verin.

Ayrıca Bakınız

 Türkçe