Thực hiện OCR bằng Java

Công nghệ Nhận dạng ký tự quang học(OCR) cho phép nhận dạng và đọc văn bản trong các tài liệu và hình ảnh được quét. OCR cho phép bạn chuyển đổi văn bản chỉ đọc thành dạng có thể chỉnh sửa. Văn bản đã chuyển đổi có thể được xử lý thêm cho các hoạt động như phân tích văn bản. Trong bài viết này, tôi sẽ chỉ cho bạn cách thực hiện OCR trên hình ảnh (PNG, JPG, BMPGIF) và chuyển đổi hình ảnh thành văn bản sử dụng Java OCR API - Aspose.OCR cho Java.

Mẹo: Bạn có thể quan tâm đến Chuyển đổi văn bản thành GIF miễn phí cho phép bạn tạo hoạt ảnh từ văn bản.

Java OCR API - Cài đặt

Có thể tải xuống Aspose.OCR cho Java dưới dạng JAR hoặc cài đặt trong ứng dụng dựa trên Maven bằng các cấu hình sau.

Kho:

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>http://repository.aspose.com/repo/</url>
</repository>

phụ thuộc:

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-ocr</artifactId>
    <version>20.5</version>
</dependency>

Chuyển đổi hình ảnh thành văn bản bằng Java

Thông thường, hình ảnh cho OCR là các trang của tài liệu được quét, hóa đơn, biên lai, hóa đơn, v.v. trong đó văn bản bao gồm nhiều dòng. Trong những tình huống như vậy, bạn cần truy xuất toàn bộ văn bản từ hình ảnh. Sau đây là các bước để thực hiện OCR trên hình ảnh có nhiều dòng văn bản bằng Aspose.OCR cho Java.

  • Tạo một thể hiện của lớp AsposeOcr.
  • Chuyển đổi hình ảnh thành văn bản bằng phương thức AsposeOcr.recognizePage(String fullPath) bằng cách chuyển đường dẫn của hình ảnh.
  • Nhận văn bản đã chuyển đổi thành một đối tượng chuỗi.

Mẫu mã sau đây cho biết cách thực hiện OCR trên hình ảnh và chuyển đổi hình ảnh thành văn bản bằng Java.

// Để biết các ví dụ đầy đủ và tệp dữ liệu, vui lòng truy cập https://github.com/aspose-ocr/Aspose.OCR-for-Java
// Đường dẫn đến thư mục tài liệu.
String dataDir = Utils.getSharedDataDir(PerformOCROnPage.class);

// Đường dẫn hình ảnh
String imagePath = dataDir + "p3.png";

//Tạo phiên bản api
AsposeOCR api = new AsposeOCR();

// Nhận dạng trang bằng đường dẫn đầy đủ đến tệp
try {
	String result = api.RecognizePage(imagePath);
	System.out.println("Result: " + result);
} catch (IOException e) {
	e.printStackTrace();
}

Chuyển đổi hình ảnh có một dòng văn bản

Trong ví dụ trước, chúng tôi đã thực hiện OCR trên một hình ảnh có nhiều dòng văn bản. Tuy nhiên, có thể xảy ra trường hợp hình ảnh chứa một dòng văn bản. Đối với trường hợp như vậy, bạn có thể định cấu hình API cho phù hợp. Sau đây là các bước để chuyển đổi một hình ảnh có một dòng văn bản.

Mẫu mã sau đây cho biết cách thực hiện OCR trên hình ảnh có một dòng văn bản bằng Java.

// Để biết các ví dụ đầy đủ và tệp dữ liệu, vui lòng truy cập https://github.com/aspose-ocr/Aspose.OCR-for-Java
// Đường dẫn đến thư mục tài liệu.
String dataDir = Utils.getSharedDataDir(RecognizeLine.class);

// Đường dẫn hình ảnh
String imagePath = dataDir + "0001460985.Jpeg";

//Tạo phiên bản 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();
}

Sự kết luận

Trong bài viết này, bạn đã biết cách chuyển đổi hình ảnh PNG, JPG, BMP và GIF thành văn bản bằng Java OCR API. Các mẫu mã cho biết cách thực hiện OCR trên hình ảnh có một hoặc nhiều dòng văn bản trong các ứng dụng Java. Bạn có thể tìm hiểu thêm về API Java OCR của Aspose bằng cách sử dụng tài liệu.

Xem thêm