Cara Bekerja dengan API di Python
Aspose.OMR FOSS untuk Python’s publik API (omr.api) sengaja dibuat kecil: OmrEngine, TemplateProcessor, ImageCollection, dan FormValidationLogic. Panduan ini menunjukkan bagaimana mereka berinteraksi dalam alur kerja generate-and-recognize.
Panduan Langkah demi Langkah
Langkah 1: Instal Paket
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.')"Langkah 2: Impor Kelas yang Diperlukan
from omr.api import OmrEngine, FormValidationLogicLangkah 3: Buat dan Simpan Template
engine = OmrEngine()
gen = engine.Generate("final-exam.txt")
gen.Save("out", "final-exam")Langkah 4: Muat Template untuk Pengenalan
Gunakan FormValidationLogic.Exception alih-alih Ignore default jika Anda ingin pelanggaran muncul untuk pertanyaan yang multi-select-nya dinonaktifkan, alih-alih diterima secara diam-diam.
processor = engine.GetTemplateProcessor("out/final-exam.omr", FormValidationLogic.Exception)Langkah 5: Kenali dan Ekspor
result = processor.Recognize("scan.png")
print(result.GetCsv())Masalah Umum dan Solusinya
FormValidationLogic.Exception tidak pernah raise, bahkan pada pertanyaan multi-tanda. Pengecekan hanya aktif untuk pertanyaan dengan Multiselect dinonaktifkan; GlobalPageSettings.Multiselect defaultnya diaktifkan, jadi pastikan itu secara eksplisit dimatikan untuk pertanyaan yang Anda harapkan menjadi single-select.
Saya perlu mengenali banyak pemindaian sekaligus. Gunakan TemplateProcessor.RecognizeFolder(folderPath, recognitionThreshold) alih-alih memanggil Recognize() dalam sebuah loop.
Saya mendaftarkan gambar dengan nama yang sudah digunakan. ImageCollection.Add tidak menimpa — periksa Contains(name) pertama, atau gunakan nama unik per gambar.
Pertanyaan yang Sering Diajukan
Apakah OmrEngine aman untuk digunakan kembali di beberapa templat?
Ya — itu tidak memiliki status.
Bagaimana cara menilai ulang hasil dengan ambang batas yang berbeda tanpa memindai ulang?
Panggil TemplateProcessor.Recalculate(result, recognitionThreshold).
Bagaimana cara menyematkan gambar dalam memori ke dalam markup alih-alih membacanya dari disk?
Daftarkan itu dengan ImageCollection.Add(name, image_bytes), lalu referensikan dalam markup sebagai ?image=<name>.