การแก้ไขภาพเอียงใน Java

ในคอมพิวเตอร์กราฟิกส์และการประมวลผลภาพ ความเอียงของภาพคือการเบี่ยงเบนมุมของภาพสี่เหลี่ยม เรียกอีกอย่างว่าภาพเอียงหรือบิดเบี้ยว คำว่า “เอียง” หมายถึงมุมของภาพ ภาพเอียงเกิดขึ้นเมื่อตำแหน่งการมองเห็นขององค์ประกอบในภาพไม่สม่ำเสมอ การเอียงอาจส่งผลให้มุมใดๆ เป็นมุม หรือแม้กระทั่งการเลื่อนเพื่อให้ด้านหนึ่งยาวกว่าอีกด้านหนึ่ง ภาพถ่ายหรือภาพที่สแกนดังกล่าวอาจดูบิดเบี้ยวและไม่สวยงาม ในบทความนี้ เราจะเรียนรู้วิธีตรวจจับภาพเอียงโดยทางโปรแกรม เราจะได้เรียนรู้วิธีการแก้ไขภาพเอียงใน Java

หัวข้อต่อไปนี้จะครอบคลุมในบทความนี้:

  1. Java API สำหรับการแก้ไขภาพเอียง
  2. ตรวจจับมุมเอียงของภาพ
  3. ตรวจหามุมเอียงของภาพสดของภาพ
  4. แก้ไขภาพเอียงอัตโนมัติ
  5. จดจำข้อความรูปภาพด้วยการแก้ไขความเอียงอัตโนมัติ
  6. การแก้ไขภาพเอียงแบบแมนนวล
  7. จดจำข้อความรูปภาพด้วยการแก้ไขภาพเอียงด้วยตนเอง

Java API สำหรับการแก้ไขภาพเอียง

สำหรับการตรวจจับภาพเอียงและการแก้ไข เราจะใช้ API Aspose.OCR for Java อนุญาตให้ใช้ 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 รูปภาพสด

นอกจากนี้ เรายังสามารถตรวจจับมุมเอียงของรูปภาพจาก 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);

จดจำข้อความรูปภาพด้วย Automatic Skew Correction ใน 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 for Java โดยไม่มีข้อจำกัดในการประเมิน

บทสรุป

ในบทความนี้ เราได้เรียนรู้วิธีการ:

  • ทำ OCR และจดจำข้อความบนภาพ
  • ใช้ตัวกรองและประมวลผลภาพ
  • ใช้การตั้งค่าการจดจำ
  • บันทึกภาพที่แก้ไขโดยใช้ Java

นอกจากการแก้ไขภาพเอียงใน Java แล้ว คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับ Aspose.OCR for Java API โดยใช้ เอกสารประกอบ ในกรณีที่มีความคลุมเครือ โปรดติดต่อเราได้ที่ ฟอรัมสนับสนุนฟรี

ดูสิ่งนี้ด้วย