תיקון הטיית תמונה ב-Java

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

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

  1. Java API לתיקון הטיית תמונה
  2. זיהוי זווית הטיה של תמונה
  3. זהה זווית הטיה של תמונה של תמונה חיה
  4. תיקון הטיה אוטומטי של תמונה
  5. זיהוי טקסט תמונה עם תיקון הטיה אוטומטי
  6. תיקון הטיית תמונה ידני
  7. זיהוי טקסט תמונה עם תיקון הטיה ידני של תמונה

Java API לתיקון הטיית תמונה

לזיהוי ותיקוני הטיית תמונה, אנו נשתמש ב-Aspose.OCR for Java API. הוא מאפשר לבצע OCR על תמונות סרוקות, תמונות סמארטפון, צילומי מסך, אזורים בתמונה וקובצי PDF סרוקים. ה-API מאפשר גם שמירת תוצאות הטקסט המוכרות בפורמטים פופולריים של מסמכים.

המחלקה AsposeOCR של ה-API היא המחלקה העיקרית לזיהוי הטקסט מתמונות. הוא מספק את השיטה CalcSkewImage(string) שמחשבת את זווית ההטיה של תמונת המקור שסופקה. הוא גם מספק שיטה נוספת CalcSkewImageFromUri(String uri) המחשבת את זווית ההטיה של תמונה המסופקת על ידי קישור URI. המחלקה PreprocessingFilter היא המחלקה הבסיסית לפקודות עיבוד תמונה. המחלקה RecognitionSettings של ה-API מספקת הגדרות עבור זיהוי התמונה מכילה אלמנטים המאפשרים התאמה אישית של תהליך הזיהוי.

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

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://releases.aspose.com/java/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-ocr</artifactId>
    <version>22.9</version>
</dependency>

זיהוי זווית הטיית תמונה ב-Java

אנו יכולים לזהות בקלות את זווית ההטיה של תמונת טקסט על ידי ביצוע השלבים המפורטים להלן:

  1. ראשית, צור מופע של המחלקה AsposeOCR.
  2. קרא לשיטת CalcSkewImage() . זה לוקח את נתיב התמונה כטיעון.
  3. לבסוף, הצג את זווית ההטיה המחושבת.

הקוד לדוגמה הבא מראה כיצד לחשב את זווית ההטיה של תמונה ב-Java.

// דוגמה זו מדגימה כיצד לחשב את זווית ההטיה של תמונה.
// צור מופע של ה-AsposeOcr
AsposeOCR api = new AsposeOCR();

// חשב זווית הטיה
double skew = api.CalcSkewImage("C:\\Files\\source.png");

// הצג זווית
System.out.println("Skew angle: " + skew + "°.");

זיהוי זווית הטיית תמונה מ-URL של תמונה חיה

אנו יכולים גם לזהות את זווית ההטיה של תמונה מכתובת אתר חיה על ידי ביצוע השלבים המפורטים להלן:

  1. ראשית, צור מופע של המחלקה AsposeOCR.
  2. קרא למתודה CalcSkewImageFromUri() . זה לוקח את נתיב התמונה כטיעון.
  3. לבסוף, הצג את זווית ההטיה המחושבת.

הקוד לדוגמה הבא מראה כיצד לחשב את זווית ההטיה של תמונה ב-Java.

// דוגמה זו מדגימה כיצד לחשב את זווית ההטיה של תמונה.
// צור מופע של ה-AsposeOcr
AsposeOCR api = new AsposeOCR();

// חשב זווית הטיה
double skew = api.CalcSkewImageFromUri("https://www.aspose.com/sample-ocr-page.png");

// הצג זווית
System.out.println("Skew angle: " + skew + "°.");

תיקון הטיית תמונה אוטומטית ב-Java

אנו יכולים לתקן באופן אוטומטי תיקון הטיית תמונה על ידי ביצוע השלבים המפורטים להלן:

  1. ראשית, צור מופע של המחלקה AsposeOCR.
  2. לאחר מכן, אתחול אובייקט מהמחלקה PreprocessingFilter.
  3. לאחר מכן, הוסף את המסנן AutoSkew() .
  4. לאחר מכן, קרא למתודה PreprocessImage() כדי להחיל את המסנן על תמונת המקור.
  5. לבסוף, שמור את התמונה המתוקנת.

הקוד לדוגמה הבא מראה כיצד להחיל מסנן עיבוד מקדים לתיקון הטיה אוטומטי ב-Java.

// דוגמה זו מדגימה כיצד להחיל תיקון הטיה אוטומטי באמצעות מסנן עיבוד מקדים ולשמור את התמונה המתוקנת.
// צור מופע של ה-AsposeOcr
AsposeOCR api = new AsposeOCR();

// הוסף מסנן ביטול הטיה
PreprocessingFilter filters = new PreprocessingFilter();
filters.add(PreprocessingFilter.AutoSkew());

// שמור תמונה מעובדת מראש לקובץ
BufferedImage imageRes = api.PreprocessImage("C:\\Files\\source.png", filters);
File outputSource = new File("C:\\Files\\result.png");
ImageIO.write(imageRes, "png", outputSource);

זיהוי טקסט תמונה עם תיקון הטיה אוטומטי ב-Java

אנו יכולים להחיל תיקון הטיה אוטומטי ולזהות את הטקסט על ידי ביצוע השלבים המפורטים להלן:

  1. ראשית, צור מופע של המחלקה AsposeOCR.
  2. לאחר מכן, אתחול אובייקט של המחלקה RecognitionSettings.
  3. לאחר מכן, קרא ל-setAutoSkew עם true כארגומנט.
  4. לאחר מכן, קרא למתודה RecognizePage() עם תמונת המקור ואובייקט RecognitionSettings.
  5. לבסוף, הצג את הטקסט המוכר.

הקוד לדוגמה הבא מראה כיצד להחיל תיקון הטיה אוטומטי ולזהות את הטקסט ב-Java.

// דוגמה זו מדגימה כיצד להחיל תיקון הטיה אוטומטי.
// צור מופע של ה-AsposeOcr
AsposeOCR api = new AsposeOCR();

// אפשר הטיה אוטומטית בהגדרות הזיהוי
RecognitionSettings recognitionSettings = new RecognitionSettings();
recognitionSettings.setAutoSkew(true);

// זיהוי תמונה
RecognitionResult result = api.RecognizePage("C:\\Files\\source.png", recognitionSettings);

// הצג טקסט מוכר
System.out.println(result.recognitionText);

תיקון הטיית תמונה ידני ב-Java

אנו יכולים להגדיר את זווית ההטיה באופן ידני על ידי סיבוב התמונה לדרגה שצוינה על ידי ביצוע השלבים המפורטים להלן:

  1. ראשית, צור מופע של המחלקה AsposeOCR.
  2. לאחר מכן, אתחול אובייקט מהמחלקה PreprocessingFilter.
  3. לאחר מכן, הוסף זווית סיבוב באמצעות מסנן שיטת Rotate() .
  4. לאחר מכן, צור מופע של המחלקה RecognitionSettings.
  5. לאחר מכן, קרא למתודה PreprocessImage() כדי להחיל את המסנן על תמונת המקור.
  6. לבסוף, הצג את הטקסט המוכר.

הקוד לדוגמה הבא מראה כיצד להחיל תיקון הטיה ידני עם מסנן עיבוד מקדים ב-Java.

// דוגמה זו מדגימה כיצד ליישם תיקון הטיה ידני.
// צור מופע של ה-AsposeOcr
AsposeOCR api = new AsposeOCR();

// הוסף מסנן ביטול הטיה
PreprocessingFilter filters = new PreprocessingFilter();
filters.add(PreprocessingFilter.Rotate(-90));

// שמור תמונה מעובדת מראש לקובץ
BufferedImage imageRes = api.PreprocessImage("C:\\Files\\source.png", filters);
File outputSource = new File("C:\\Files\\result.png");
ImageIO.write(imageRes, "png", outputSource);

זיהוי טקסט תמונה עם תיקון הטיית תמונה ידני ב-Java

אנו יכולים להגדיר את זווית ההטיה באופן ידני ולזהות את הטקסט על ידי ביצוע השלבים המפורטים להלן:

  1. ראשית, צור מופע של המחלקה AsposeOCR.
  2. לאחר מכן, אתחול אובייקט של המחלקה RecognitionSettings.
  3. לאחר מכן, קרא למתודה setSkew().
  4. לאחר מכן, קרא למתודה RecognizePage() עם תמונת המקור ואובייקט RecognitionSettings.
  5. לבסוף, הצג את הטקסט המוכר.

הקוד לדוגמה הבא מראה כיצד להחיל תיקון הטיה ידני ולזהות את טקסט התמונה ב-Java.

// דוגמה זו מדגימה כיצד ליישם תיקון הטיה ידני.
// צור מופע של ה-AsposeOcr
AsposeOCR recognitionEngine = new AsposeOCR();

// הגדר באופן ידני את זווית ההטיה
RecognitionSettings recognitionSettings = new RecognitionSettings();
recognitionSettings.setSkew(6);

// זיהוי תמונה
RecognitionResult result = recognitionEngine.RecognizePage("C:\\Files\\source.png", recognitionSettings);

// הצג תוצאות
System.out.println(result.recognitionText);

קבל רישיון הערכה בחינם

אתה יכול לקבל רישיון זמני בחינם כדי לנסות את Aspose.OCR עבור Java ללא מגבלות הערכה.

סיכום

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

  • לבצע OCR ולזהות טקסט בתמונות;
  • החל מסננים ועיבוד תמונות;
  • השתמש בהגדרות זיהוי;
  • שמור את התמונות המתוקנות באמצעות Java.

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

ראה גם