זיהוי סימנים אופטי, בקיצור OMR, משמש לעתים קרובות להערכת שאלונים, סקרים ותקני איסוף מידע אחרים. במאמר זה, תוכל ללמוד כיצד ליצור ולבדוק את גיליונות השאלות והבועות של OMR באמצעות שפת C# ביישום NET. נבחן בקצרה את הגישות הבאות:

OMR Template Creator and Checker API – התקנה צור תבנית גיליון שאלות OMR, תמונה וקובץ PDF באמצעות C# בצע OMR על תמונות גיליון בועות מרובות באמצעות C#

OMR Template Creator and Checker API – התקנה

ליצירת תבניות OMR וביצוע פעולות OMR ביישומי C# או VB.NET, ראשית עלינו להתקין את Aspose.OMR עבור .NET API. אתה יכול להוריד אותו בקלות מ-מהדורות חדשות או באמצעות הפקודה הבאה של NuGet:

Install-Package Aspose.OMR -Version 20.6.0

לכן, אנו מוכנים כעת להמשיך ליצירת משאבי גיליון שאלות מרובים עם ה-API באמצעות C#:

צור תבנית גיליון שאלות OMR, תמונה וקובץ PDF באמצעות C#

תן לנו לחקור את יצירת משאבי גיליון שאלות OMR. כאן נאחסן שאלות לדוגמה בקובץ TXT שישמש מאוחר יותר על ידי מנוע OMR ליצירת תבנית נייר השאלה OMR, תמונה וקובץ PDF. יתר על כן, להלן סימון הטקסט שבו נשתמש כקלט עבור מנוע ה-OMR:

?text=Name__________________________________ Date____________

?grid=ID
	sections_count=8
#What is Aspose.OMR main function?
	() OCR () Capture human-marked data
	() There is no main function () Enhance images
#Can Aspose.OMR process not only scans, but also photos?
	() Yes, indeed! () No
#Aspose.OMR is available on any platform, because it is:
	() Cross-platform code () Cloud service
#Aspose.OMR works with any kind of OMR forms: tests, exams, questionnaires, surveys, etc.
	() Yes, indeed! () No
#Excellent recognition results can be achieved only for filled bubbles at least for:
	() 40% () 60% () 75% () 98%
#Do you have to mark up every question on the page?
	(Yes) Yes, that will help a lot! (No) No
#Rate your preference from 0 to 9 with "0" being preference towards performance
and "9" being preference towards flexibility.
	(0) (1) (2) (3) (4) (5) (6) (7) (8) (9)
#I found aspose omr to be a useful tool. (5 - strongly agree, 1 - strongly disagree)
	(5) (4) (3) (2) (1)

?text= Answer sheet section
?answer_sheet=MainQuestions
	elements_count=10
	columns_count=5

?text=Sign________________________________

כעת נבצע את השלבים הבאים עם קוד C# ליצירת גיליון שאלות מרובות של OMR:

  1. אתחול מנוע OMR
  2. התקשר לשיטת GenerateTemplate עם סימון טקסט
  3. שמור גיליון שאלות פלט OMR

קטע הקוד הבא מבוסס על שלבים אלה המראים כיצד ליצור תבנית גיליון שאלות OMR, תמונה וקובץ PDF באמצעות C#:

// אתחול מנוע OMR
OmrEngine engine = new OmrEngine();

// יצירת תבנית שיחה מספקת נתיב לקובץ ה-txt עם סימון
GenerationResult res = engine.GenerateTemplate(Path.Combine(testFolderPath, "Grid.txt"));

// לבדוק במקרה של שגיאות
if (res.ErrorCode != 0)
{
    Console.WriteLine("ERROR CODE: " + res.ErrorCode);
}

// אתה יכול להשתמש באחת מהגישות הבאות
// תוצאת שמירה: PDF ותבנית .omr
res.SaveAsPdf(testFolderPath , "Grid");
// תוצאת שמור: תמונה ותבנית .omr
res.Save(testFolderPath, "Grid");

אז יצרנו נייר שאלת OMR כפי שמוצג בצילום המסך הבא. אתה יכול להפיץ מסמכים על ידי הדפסת קובץ ה-PDF או התמונה שנוצרו לפי הדרישות שלך.

תבנית OMR

בצע OMR על תמונות גיליון בועות מרובות באמצעות C#

לבסוף, היית אוספת את התגובות על דפי תשובות בועות שנוצרו ואז מצלמת תמונות, או סורקת אותן לביצוע OMR באמצעות C#. בדוגמה זו, הבה נבחן את התמונה לדוגמה הבאה. Aspose.OMR עבור .NET API תיצור קובץ מופרד בפסיקים (CSV) כפלט של ביצוע OMR.

ליצור עומר

תן לנו לבצע את השלבים הבאים לביצוע OMR באמצעות C#:

  1. ציין את נתיב קובץ התבנית
  2. ציין את נתיב קובץ התמונה הסרוקה
  3. אתחול TemplateProcessor
  4. זיהוי תמונות בשיטת RecognizeImage
  5. כתוב פלט CSV בקובץ TXT

קטע הקוד שלהלן מראה כיצד לבצע OMR בתמונות גיליון בועות מרובות בחירה ב-C#:

string TemplateName = @"Sheet.omr";
string[] UserImages = new string[] { "Sheet1.jpg" };

// הכנת קלט ופלט
string testFolderPath = dataDir;
string templatePath = Path.Combine(testFolderPath, TemplateName);

// קריאות OMR API בפועל
OmrEngine engine = new OmrEngine();
TemplateProcessor templateProcessor = engine.GetTemplateProcessor(templatePath);
Console.WriteLine("Template loaded.");

for (int i = 0; i < UserImages.Length; i++)
{
    string imagePath = Path.Combine(testFolderPath, UserImages[i]);
    string csvResult = templateProcessor.RecognizeImage(imagePath).GetCsv();

    File.WriteAllText(Path.Combine(outputPath, Path.GetFileNameWithoutExtension(UserImages[i]) + ".csv"), csvResult);
    Console.WriteLine("Result exported. Path: " + Path.Combine(testFolderPath, Path.GetFileNameWithoutExtension(UserImages[i]) + ".csv"));
}

צילום המסך הבא מראה באיזו יעילות ומדויקת נוצר קובץ ה-CSV הפלט עם Aspose.OMR עבור .NET API. כעת ניתן לעבד מידע CSV זה בהמשך בהתאם לתכנון המערכת שלך.

לבצע עומר

סיכום

בקצרה, למדנו כיצד ליצור דפי שאלות ובהמשך לבצע פעולות OMR לסימון תמונות גיליון בועות באמצעות C#. יצירת גיליונות OMR ולאחר מכן ביצוע פעולות OMR בתמונות עוזרות מאוד בשיטות מחקר שונות. יתרה מכך, בכל מקרה של חששות או שאילתות, אתה יכול לפנות אלינו באמצעות פורומי תמיכה בחינם.

ראה גם