Aspose.OMR for C++
C++ biblioteka OMR formų kūrimui ir duomenų atpažinimui
Moderni optinio žymų atpažinimo (OMR) sprendimas C++ kūrėjams, leidžiantis kurti OMR šablonus/formas ir atpažinti nuskenuotus vaizdus bei nuotraukas C++ programose.
Kas yra Aspose.OMR for C++?
Aspose.OMR for C++ yra galinga ir lanksti C++ OMR API, sukurta supaprastinti optinio žymėjimo atpažinimo (OMR) užduotis C++ programose. Idealiai tinka kūrėjams, kuriant apklausų sistemas, egzaminų apdorojimo įrankius arba pritaikytas OMR programas; ši SDK siūlo sklandų integravimą, išsamų dokumentaciją, pavyzdžių kodą ir daugiaplatforminę paramą. Su galimybe apdoroti kelių pasirinkimų, tinklelio ir tekstinius klausimus, ji puikiai tiksliai skaito nuskenuotus vaizdus ir nuotraukas. Kūrėjai gali eksportuoti atpažinimo rezultatus CSV formatu, todėl lengva analizuoti duomenis iš testų, formų ar klausimynų įvairiomis platformomis nesirūpinant suderinamumo problemomis.
Ar kuriate individualią C++ OMR programinę įrangą, ar ieškote patikimo OMR SDK C++ kalbai, Aspose.OMR išsiskiria kaip visapusiškas sprendimas. Ji palaiko pažangias funkcijas, tokias kaip žymimųjų langelių aptikimas, tinklelio laukai ir lankstūs OMR šablonai. Biblioteka taip pat sklandžiai integruojasi su kitomis Aspose API, leidžiančiomis kūrėjams praturtinti savo programas papildomomis failų formatų ar dokumentų automatizavimo funkcijomis. Nuo aukštos tikslumo OMR vaizdų analizės su C++ iki mastelio didinimo formų apdorojimo sistemų kūrimo, Aspose.OMR for C++ suteikia kūrėjams galimybę greitai ir patikimai kurti efektyvius ir funkcijomis turtingus OMR sprendimus.
Pradžia su Aspose.OMR for C++
Rekomenduojamas būdas įdiegti Aspose.OMR for C++ yra per NuGet. Prašome naudoti šią komandą sklandžiam įdiegimui.
Įdiekite Aspose.OMR for C++ per NuGet
Install-Package Aspose.OMR.Cpp
You can download the library directly from Aspose.OMR produkto puslapis
Generuoti OMR šabloną / formą naudojant C++ API
Aspose.OMR for C++ API palengvina šablonų kūrimą, kuris yra esminis OMR sistemų aspektas. Naudojant C++ OMR API, programinės įrangos kūrėjai gali kurti šablonus įvairių tipų formoms, užtikrinant tikslų duomenų išskyrimą skenavimo proceso metu. API galima naudoti popieriaus dydžio, orientacijos, šrifto, spalvų ir kitų išdėstymo nustatymų, taikomų visiems šablono puslapiams ir daugiau. Ši funkcija supaprastina OMR galimybių integravimą į įvairias sritis, tokias kaip apklausos, egzaminai ir vertinimai. Tolimesnis pavyzdys parodo, kaip sukurti formos vaizdą, kurį galima išspausdinti ir perduoti respondentams C++ programose.
Kaip sukurti formos vaizdą C++ programose?
//Generate the form for ANSI Letter paper size
System::SharedPtr engine = System::MakeObject();
// Generate the form for ANSI Letter paper size (8.5 by 11 inches)
System::SharedPtr settings = System::MakeObject();
settings->setPaperSize(Api::PaperSize::Letter);
System::SharedPtr result = engine->GenerateTemplate(markupPath, nullptr, settings);
Atpažinti OMR formas naudojant C++ API
Aspose.OMR for C++ yra aprūpintas pažangia OMR funkcija, leidžiančia programinės įrangos kūrėjams lengvai kurti ir apdoroti sudėtingas formas. Optinio žymėjimo (OMR) formų atpažinimas naudojant API yra paprastas procesas, apimantis kelis pagrindinius žingsnius. Po įdiegimo vartotojams reikia įkelti OMR šabloną, atitinkantį formą, kurią norite atpažinti. Tada įkelkite nuskenuotą OMR formos vaizdą ir apdorokite jį naudodami įkeltą šabloną, išgaukite atpažintus duomenis ir, jei reikia, juos išsaugokite. Toliau pateiktas pavyzdys rodo, kaip atpažinti ir išgauti duomenis iš OMR formos C++ programose.
Kaip atpažinti ir išgauti duomenis iš OMR formos naudojant C++ API?
#include
omr::AsposeOmrApi api;
api.LoadTemplate("path/to/your/template.omr");
// Load and Process the Image
api.LoadImage("path/to/your/scanned/image.jpg");
api.Process();
// Access Recognized Data
omr::OmrPageReader reader = api.GetOmrPageReader();
std::vector pages = reader.ExtractPages();
omr::OmrPage page = pages[0]; // Assuming there's only one page in the form
// Access and handle recognized data
// Example: Extracting data from the grid
omr::Grid grid = page.GetGrids()[0]; // Assuming there's only one grid on the page
std::vector> data = grid.ExtractData();
// Finalize and Cleanup
api.Finalize();
Greitas ir efektyvus OMR skenavimas
Efektyvumas yra svarbiausias, ypač dirbant su dideliu skenuotų dokumentų kiekiu. Aspose.OMR for C++ puikiai veikia greito nuskaitymo režimu, leidžiančiu greitai ir tiksliai išgauti duomenis iš OMR lapų. Ši funkcija ypač vertinga programoms, kuriose laikas yra lemiamas, pavyzdžiui, laiko ribojami egzaminai ar apklausos. API palaiko platų OMR elementų spektrą, įskaitant žymėjimo laukelius, tinklelius ir teksto sritis. Ši išsami parama leidžia kūrėjams tvarkyti įvairius dokumentų tipus, todėl tai yra universalus pasirinkimas programoms, kurioms reikalinga OMR funkcionalumas.
Daugelio puslapių dokumentų apdorojimas
Aspose.OMR for C++ puikiai tvarko daugelio puslapių dokumentų apdorojimą, leidžiant kūrėjams sklandžiai dirbti su dideliais duomenų rinkiniais. Ši galimybė ypač vertinga programoms, susijusioms su apklausomis ar egzaminais, kuriuose dalyvauja daugybė dalyvių. Daugelio puslapių dokumentų apdorojimas naudojant OMR C++ API apima kelis žingsnius: įkelti, apdoroti ir išgauti duomenis iš kiekvieno puslapio. Pavyzdžiui, įkelti OMR šabloną, apdoroti kiekvieną daugelio puslapių dokumento puslapį ir išsaugoti duomenis.
Kaip įkelti ir apdoroti kiekvieną daugelio puslapių dokumento puslapį naudojant C++ API?
#include
// Load the OMR template
omr::AsposeOmrApi api;
api.LoadTemplate("path/to/your/template.omr");
//process each page of the multi-page document.
const int pageCount = 5; // Change this to the total number of pages in your document
for (int currentPage = 1; currentPage <= pageCount; ++currentPage) {
std::string imagePath = "path/to/your/scanned/image" + std::to_string(currentPage) + ".jpg";
api.LoadImage(imagePath);
api.Process();
// Access and handle recognized data for each page
omr::OmrPageReader reader = api.GetOmrPageReader();
std::vector pages = reader.ExtractPages();
omr::OmrPage page = pages[0]; // Assuming there's only one page in each image
// Access and handle recognized data
// Example: Extracting data from the grid
omr::Grid grid = page.GetGrids()[0]; // Assuming there's only one grid on the page
std::vector> data = grid.ExtractData();
// Further processing or storage of the data can be done here
// Cleanup for the next iteration
api.Finalize();
}
// release resources.
api.Finalize();