ทำ OCR โดยใช้ Java

เทคโนโลยี Optical Character Recognition (OCR) ทำให้สามารถจดจำและอ่านข้อความภายในเอกสารและรูปภาพที่สแกนได้ OCR ให้คุณแปลงข้อความแบบอ่านอย่างเดียวเป็นรูปแบบที่สามารถแก้ไขได้ ข้อความที่แปลงแล้วสามารถนำไปประมวลผลเพิ่มเติมได้ เช่น การวิเคราะห์ข้อความ ในบทความนี้ ฉันจะแสดงวิธี OCR บนรูปภาพ (PNG, JPG, BMP และ GIF) และแปลงรูปภาพเป็นข้อความ ใช้ Java OCR API - Aspose.OCR for Java

เคล็ดลับ: คุณอาจสนใจ Text to GIF Converter ฟรีที่ให้คุณสร้างภาพเคลื่อนไหวจากข้อความ

Java OCR API - การติดตั้ง

Aspose.OCR for Java สามารถดาวน์โหลดเป็น JAR หรือติดตั้งภายในแอปพลิเคชันที่ใช้ 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-ocr</artifactId>
    <version>20.5</version>
</dependency>

แปลงรูปภาพเป็นข้อความโดยใช้ Java

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

  • สร้างอินสแตนซ์ของคลาส AsposeOcr
  • แปลงรูปภาพเป็นข้อความโดยใช้เมธอด AsposeOcr.recognizePage(String fullPath) โดยผ่านเส้นทางของรูปภาพ
  • รับข้อความที่แปลงเป็นวัตถุสตริง

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีดำเนินการ OCR บนรูปภาพและแปลงรูปภาพเป็นข้อความโดยใช้ Java

// สำหรับตัวอย่างและไฟล์ข้อมูลทั้งหมด โปรดไปที่ https://github.com/aspose-ocr/Aspose.OCR-for-Java
// เส้นทางไปยังไดเร็กทอรีเอกสาร
String dataDir = Utils.getSharedDataDir(PerformOCROnPage.class);

// เส้นทางภาพ
String imagePath = dataDir + "p3.png";

//สร้างอินสแตนซ์ API
AsposeOCR api = new AsposeOCR();

// จดจำหน้าตามเส้นทางแบบเต็มไปยังไฟล์
try {
	String result = api.RecognizePage(imagePath);
	System.out.println("Result: " + result);
} catch (IOException e) {
	e.printStackTrace();
}

แปลงรูปภาพที่มีข้อความบรรทัดเดียว

ในตัวอย่างก่อนหน้านี้ เราได้ทำการ OCR บนรูปภาพที่มีข้อความหลายบรรทัด อย่างไรก็ตาม อาจมีบางกรณีที่รูปภาพมีข้อความบรรทัดเดียว ในกรณีเช่นนี้ คุณสามารถกำหนดค่า API ได้ตามนั้น ต่อไปนี้เป็นขั้นตอนในการแปลงรูปภาพที่มีข้อความบรรทัดเดียว

  • สร้างวัตถุของคลาส AsposeOcr
  • แปลงรูปภาพเป็นข้อความโดยใช้เมธอด AsposeOcr.recognizeLine(String fullPath)
  • รับผลลัพธ์เป็นวัตถุสตริง

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีดำเนินการ OCR บนรูปภาพที่มีข้อความบรรทัดเดียวโดยใช้ Java

// สำหรับตัวอย่างและไฟล์ข้อมูลทั้งหมด โปรดไปที่ https://github.com/aspose-ocr/Aspose.OCR-for-Java
// เส้นทางไปยังไดเร็กทอรีเอกสาร
String dataDir = Utils.getSharedDataDir(RecognizeLine.class);

// เส้นทางภาพ
String imagePath = dataDir + "0001460985.Jpeg";

//สร้างอินสแตนซ์ API
AsposeOCR api = new AsposeOCR();

try {
	String result = api.RecognizeLine(imagePath);
	System.out.println("File: " + imagePath);
	System.out.println("Result line: " + result);
} catch (IOException e) {
	e.printStackTrace();
}

บทสรุป

ในบทความนี้ คุณได้เห็นวิธีการแปลงรูปภาพ PNG, JPG, BMP และ GIF เป็นข้อความโดยใช้ Java OCR API ตัวอย่างโค้ดแสดงวิธีดำเนินการ OCR กับรูปภาพที่มีข้อความบรรทัดเดียวหรือหลายบรรทัดภายในแอปพลิเคชัน Java คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับ Java OCR API ของ Aspose ได้โดยใช้ เอกสารประกอบ

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