חילוץ נתונים מתמונות ב-Java

סקירה כללית

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

נושאים הבאים ייכנסו למאמר זה:

  1. Java OMR API לחילוץ נתונים מתמונה
  2. חילוץ נתונים מתמונות ב-Java
  3. ביצוע OMR וחילוץ נתונים מתמונות מרובות
  4. חילוץ נתוני OMR עם סף
  5. חילוץ נתוני OMR עם חישוב מחדש

Java OMR API לחילוץ נתונים מתמונה

כדי לבצע פעולות OMR וחילוץ נתונים מתמונות ב-Java, נשתמש ב-Aspose.OMR עבור Java API. כלי חזק זה מאפשר לעצב, ליצור ולזהות דפי תשובות, מבחנים, טפסי MCQ, חידונים, טפסי משוב, סקרים והצבעות.

מחלקת OmrEngine בתוך ה-API אחראית על יצירת תבניות ועיבוד תמונות. השיטה getTemplateProcessor(String templatePath) שלה מייצרת מופע של TemplateProcessor המותאם לטיפול בתבניות ובתמונות. כדי לזהות תמונה, ניתן להשתמש בשיטה recognizeImage(String imagePath), המחזירה את כל רכיבי OMR כמופע של RecognitionResult. באמצעות השיטה getCsv(), תוכלו לייצר מיתר CSV המכיל את תוצאות הזיהוי. בנוסף, השיטה recalculate(RecognitionResult result, int recognitionThreshold) משפרת את תוצאות הזיהוי עם פרמטרים מותאמים אישית.

אנא הורידו את JAR של ה-API או הוסיפו את הקונפיגורציה pom.xml הבאה באפליקציית Java מבוססת Maven.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>http://repository.aspose.com/repo/</url>
</repository>
<dependency>
     <groupId>com.aspose</groupId>
     <artifactId>aspose-omr</artifactId>
     <version>19.12</version>
</dependency>

חילוץ נתונים מתמונות ב-Java

כדי לבצע פעולה OMR, אנו זקוקים לקובץ התבנית OMR המוכן (.omr) ולתמונה של טפסים או דפים שמולאו על ידי המשתמש. תהליך חילוץ הנתונים מתמונות ב-Java, במיוחד באמצעות פעולות OMR, כולל את הצעדים הבאים:

  1. ראשית, צרו מופע של מחלקת OmrEngine.
  2. לאחר מכן, קראו לשיטה getTemplateProcessor() והתחילו מופע של מחלקת TemplateProcessor, כשהארגומנט הוא נתיב קובץ התבנית OMR.
  3. לאחר מכן, קבלו את המופע RecognitionResult על ידי קריאה לשיטה recognizeImage() עם נתיב התמונה כארגומנט.
  4. לאחר מכן, קבלו את תוצאות הזיהוי כמיתרי CSV באמצעות השיטה getCsv().
  5. לבסוף, שמרו את תוצאת ה-CSV כקובץ CSV על הדיסק המקומי.

דוגמת קוד הבאה מדגימה כיצד לבצע חילוץ נתונים מתמונות ב-Java על ידי המרת נתוני OMR לפורמט CSV.

// This code example demonstrates how to perform OMR on an image and extract data
// OMR Template file path
String templatePath = "C:\\Files\\OMR\\Sheet.omr";
// Image file path
String imagePath = "C:\\Files\\OMR\\Sheet1.png";
// Initialize OMR Engine
OmrEngine engine = new OmrEngine();
// Get template processor
TemplateProcessor templateProcessor = engine.getTemplateProcessor(templatePath);
// Recognize image
RecognitionResult result = templateProcessor.recognizeImage(imagePath);
// Get results in CSV
String csvResult = result.getCsv();
// Save CSV file
PrintWriter wr = new PrintWriter(new FileOutputStream("C:\\Files\\OMR\\Sheet1.csv"), true);
wr.println(csvResult);
חילוץ נתונים מתמונה ב-Java

ביצוע OMR וחילוץ נתונים מתמונה ב-Java.

אנא הורידו את תבנית ה-OMR בשימוש בפוסט זה.

ביצוע OMR וחילוץ נתונים מתמונות מרובות

אנו יכולים לבצע פעולות OMR על תמונות מרובות ולחלץ נתונים בקובץ CSV נפרד עבור כל אחת מהן, באמצעות הצעדים שצוינו קודם. כדי להשלים חילוץ נתונים מתמונות ב-Java, יש לחזור על הצעדים 3, 4 ו-5 עבור כל תמונה בנפרד.

להלן דוגמת קוד המדגימה כיצד לחלץ נתוני OMR מתמונות מרובות באמצעות Java.

// This code example demonstrates how to perform OMR on multiple images and extract data
// Working folder path
String folderPath = "C:\\Files\\OMR\\";
// OMR Template file path
String templatePath = folderPath + "Sheet.omr";
// Image file path
String[] UserImages = new String[] { "Sheet1.png", "Sheet2.png" };
// Initialize OMR Engine
OmrEngine engine = new OmrEngine();
// Get template processor
TemplateProcessor templateProcessor = engine.getTemplateProcessor(templatePath);
// Process images one by one in a loop
for (int i = 0; i < UserImages.length; i++)
{
String image = UserImages[i];
String imagePath = folderPath + image;
// Recognize image
RecognitionResult result = templateProcessor.recognizeImage(imagePath);
// Get results in CSV
String csvResult = result.getCsv();
// Save CSV file
PrintWriter wr = new PrintWriter(new FileOutputStream(folderPath + "Sheet_" + i + ".csv"), true);
wr.println(csvResult);
System.out.println(csvResult);
}
. הנתונים ברשימה, אם הם מסומנים או ממוספרים, חייבים להישאר ללא שינוי לחלוטין.

חילוץ נתוני OMR עם סף ב-Java

כדי לבצע פעולות זיהוי סימנים אופטי (OMR) ב-Java, אנו משתמשים בערך סף בין 0 ל-100 בהתבסס על דרישות ספציפיות. ערך סף זה, בשימוש בחילוץ נתונים מתמונות ב-Java, קובע כמה קשוחה תהיה ה-API בהדגשת תשובות; ערך גבוה יותר מגביר את הקשיחות. יש להקפיד על הצעדים שצוינו קודם לכן בעיבוד OMR עם הסף הנבחר. במיוחד, בתוך הצעד #3, יש לקרוא לשיטה recognizeImage(string, int32). שיטה זו דורשת את נתיב קובץ התמונה ואת ערך הסף הרצוי כארגומנטים.

דוגמת קוד הבאה מדגימה כיצד לבצע OMR עם ערך סף באמצעות Java:

// This code example demonstrates how to perform OMR with therashold and extract data from an image
// OMR Template file path
String templatePath = "C:\\Files\\OMR\\Sheet.omr";
// Image file path
String imagePath = "C:\\Files\\OMR\\Sheet1.png";
// Threshold value
int CustomThreshold = 40;
// Initialize OMR Engine
OmrEngine engine = new OmrEngine();
// Get template processor
TemplateProcessor templateProcessor = engine.getTemplateProcessor(templatePath);
// Recognize image
RecognitionResult result = templateProcessor.recognizeImage(imagePath, CustomThreshold);
// Get results in CSV
String csvResult = result.getCsv();
// Save CSV file
PrintWriter wr = new PrintWriter(new FileOutputStream("C:\\Files\\OMR\\Sheet1_threshold.csv"), true);
wr.println(csvResult);
System.out.println(csvResult);

חילוץ נתוני OMR עם חישוב מחדש ב-Java

כאשר עוסקים בחילוץ נתונים מתמונות ב-Java, במיוחד בנוגע ל-OMR, עשויה להיות צורך לחשב מחדש את התוצאות באמצעות ערכי סף שונים. על ידי קביעת תצורה של ה-API, החישוב מחדש יכול להתבצע אוטומטית באמצעות השיטה TemplateProcessor.recalculate(). גישה זו מאפשרת לבצע מספר חזרות של עיבוד תמונות על ידי התאמת הסף עד להשגת התוצאה הרצויה. כדי לבצע בהצלחה את פעולת OMR עם חישוב מחדש, בצעו את הצעדים הבאים:

  1. ראשית, צרו מופע של מחלקת OmrEngine.
  2. לאחר מכן, קראו לשיטה getTemplateProcessor() והתחילו מופע של מחלקת TemplateProcessor. היא לוקחת את נתיב קובץ התבנית OMR כארגומנט.
  3. לאחר מכן, קבלו את המופע RecognitionResult על ידי קריאה לשיטה recognizeImage() עם נתיב התמונה כארגומנט.
  4. לאחר מכן, ייצאו את תוצאות הזיהוי כמיתר CSV באמצעות השיטה getCsv().
  5. לאחר מכן, שמרו את תוצאת ה-CSV כקובץ CSV על הדיסק המקומי.
  6. לאחר מכן, קראו לשיטה recalculate(). היא לוקחת את המופע RecognitionResult ואת ערך הסף כארגומנטים.
  7. לאחר מכן, ייצאו את תוצאות הזיהוי כמיתר CSV באמצעות השיטה getCsv().
  8. לבסוף, שמרו את תוצאת ה-CSV כקובץ CSV על הדיסק המקומי.

דוגמת קוד הבאה מדגימה כיצד לבצע OMR עם שיטת החישוב מחדש באמצעות Java:

// OMR Template file path
String templatePath = "C:\\Files\\OMR\\Sheet.omr";
// Image file path
String imagePath = "C:\\Files\\OMR\\Sheet1.png";
// Threshold value
int CustomThreshold = 40;
// Initialize OMR Engine
OmrEngine engine = new OmrEngine();
// Get template processor
TemplateProcessor templateProcessor = engine.getTemplateProcessor(templatePath);
// Recognize image
RecognitionResult result = templateProcessor.recognizeImage(imagePath, CustomThreshold);
// Get results in CSV
String csvResult = result.getCsv();
// Save CSV file
PrintWriter wr = new PrintWriter(new FileOutputStream("C:\\Files\\OMR\\Sheet1.csv"), true);
wr.println(csvResult);
// Recalculate
// You may apply new threshold value here
templateProcessor.recalculate(result, CustomThreshold);
// Get recalculated results in CSV
csvResult = result.getCsv();
// Save recalculated resultant CSV file
PrintWriter finalWr = new PrintWriter(new FileOutputStream("C:\\Files\\OMR\\Sheet1_recalculated.csv"), true);
finalWr.println(csvResult);
.

קבל רישיון חינם

יש לכם הזדמנות לקבל רישיון חינם זמני לניסיון של הספרייה ללא מגבלות הערכה. זו דרך מצוינת לחקור תכונות כמו חילוץ נתונים מתמונות ב-Java, מה שמאפשר לכם להעריך במלואן את יכולותיו. הנתונים ברשימה למטה נשארים ללא שינוי לצורך הפניה שלכם:

  1. הספרייה פועלת ביעילות עם כמויות גדולות של נתונים.
  2. אינטגרציה עם מערכות קיימות היא חלקה.
  3. הנתונים שנחצבו מדויקים ואמינים מאוד.
  4. צעדי ההתקנה הם פשוטים ותיעוד טוב.

סיכום

במאמר זה למדנו כיצד:

  • לבצע פעולה OMR על תמונות;
  • לחלוץ נתונים בפורמט CSV באופן תכנותי;
  • להחיל הגדרות סף בעת ביצוע OMR על תמונות;
  • לחשב מחדש את תוצאות OMR בתהליך אוטומטי באמצעות Java.

בנוסף, כאשר עוסקים בחילוץ נתונים מתמונות ב-Java, תוכלו לחקור עוד על ה-Aspose.OMR עבור Java API על ידי סקירת התיעוד. אם אתם נתקלים בבעיות, אל תהססו לפנות אלינו בפורום התמיכה החינמי שלנו.

ראה גם