Nhận dạng-Văn bản-OCR-Hình ảnh-Sử dụng-Java

Bạn có thể chuyển đổi văn bản từ hình ảnh sang định dạng có thể chỉnh sửa bằng Nhận dạng ký tự quang học (OCR). Các hình ảnh như JPG, PNG, TIFF, BMP, GIF, v.v. được sử dụng ở mọi nơi trên internet và bạn có thể cần nhận dạng văn bản từ một hình ảnh trực tuyến. Bạn có thể dễ dàng sử dụng liên kết URL tới hình ảnh đó để thực hiện OCR trên đó, thay vì lưu hoặc tải xuống tệp. Các tiêu đề sau thảo luận thêm về các chi tiết:

Java OCR API - Cài đặt

Aspose.OCR cho Java API có thể được sử dụng để thực hiện các hoạt động Nhận dạng ký tự quang học trên hình ảnh. Nó có thể nhận dạng văn bản và chuyển đổi hình ảnh thành văn bản có thể chỉnh sửa. Vui lòng tải xuống tệp JAR của API từ phần Tải xuống hoặc chỉ định các cấu hình Maven sau trong tệp pom.xml của dự án của bạn:

Kho:

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

Sự phụ thuộc:

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

Nhận dạng văn bản bằng cách thực hiện OCR trên hình ảnh từ URL với Java

Bạn có thể thực hiện Nhận dạng ký tự quang học trên hình ảnh từ URL bằng các bước sau:

  1. Tạo cá thể API với lớp AsposeOCR.
  2. Chỉ định URI hình ảnh.
  3. Đặt các tùy chọn nhận dạng với lớp RecognitionSettings.
  4. Nhận đối tượng kết quả.
  5. In kết quả.

Đoạn mã sau giải thích cách nhận dạng văn bản bằng cách thực hiện OCR trên hình ảnh từ URL theo cách lập trình bằng Java:

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

// Chỉ định URI hình ảnh
String uri = "https://www.castlegateit.co.uk/wp-content/uploads/2016/09/justified_text.png";

// Đặt các tùy chọn nhận dạng
RecognitionSettings settings = new RecognitionSettings();
settings.setAutoSkew(false);
ArrayList<Rectangle> rectangles = new ArrayList<Rectangle>();
rectangles.add(new Rectangle(90,186,775,95));
settings.setRecognitionAreas(rectangles);


// Nhận đối tượng kết quả
RecognitionResult result = null;
try {
	result = api.RecognizePageFromUri(uri, settings);
} catch (IOException e) {
	e.printStackTrace();
}

// In kết quả
System.out.println("Result: \n" + result.recognitionText+"\n\n");
System.out.println("RecognitionAreasText: \n");
for(String text: result.recognitionAreasText) {
	System.out.println(text);
}

Nhận dạng văn bản từ hình ảnh nghiêng hoặc nghiêng bằng OCR sử dụng Java

Đôi khi một hình ảnh có thể bị nghiêng hoặc lệch vì một lý do nào đó. Ví dụ: hình ảnh được tạo bởi máy ảnh hoặc máy quét có thể bị lệch một chút, sau đó bạn có thể nhận được góc lệch của hình ảnh đầu vào. Bạn có thể cải thiện độ chính xác của nhận dạng văn bản bằng cách biết và hiệu chỉnh góc lệch. Bạn cần làm theo các bước sau:

  • Tạo phiên bản API bằng đối tượng AsposeOCR.
  • Đặt các tùy chọn nhận dạng.
  • Tính và đặt góc xiên.
  • Nhận kết quả với đối tượng RecognitionResult và in nó.

Đoạn mã dưới đây cho thấy cách nhận dạng văn bản từ một hình ảnh bị lệch bằng OCR theo chương trình trong Java:

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

String uri = "https://www.castlegateit.co.uk/wp-content/uploads/2016/09/justified_text.png";

BufferedImage image = null;
try{
java.net.URL url =new java.net.URL(uri);

// đọc url
image = ImageIO.read(url);
}catch(IOException e){
            e.printStackTrace();
        }
// đặt các tùy chọn nhận dạng
RecognitionSettings settings = new RecognitionSettings();
double angle = 0;

// Nhận góc xiên
try {
	angle = api.CalcSkewImage(image);
	System.out.println("Skew text is:" + angle + " degrees.");
} catch (IOException e1) {
	e1.printStackTrace();
}
settings.setSkew(angle);

ArrayList<Rectangle> rectangles = new ArrayList<Rectangle>();
rectangles.add(new Rectangle(90,186,775,95));
settings.setRecognitionAreas(rectangles);

// lấy đối tượng kết quả
RecognitionResult result = null;
try {
	result = api.RecognizePageFromUri(uri, settings);
} catch (IOException e) {
	e.printStackTrace();
}

// in kết quả
System.out.println("Result: \n" + result.recognitionText+"\n\n");
System.out.println("RecognitionAreasText: \n");
for(String text: result.recognitionAreasText) {
	System.out.println(text);
}

Nhận giấy phép API miễn phí

Bạn có thể yêu cầu Giấy phép Tạm thời Miễn phí để đánh giá API ở mức đầy đủ của nó.

Sự kết luận

Tóm lại, bạn đã học được cách nhận dạng văn bản bằng cách thực hiện các thao tác OCR trên một hình ảnh từ bất kỳ địa chỉ URL nào. Hơn nữa, bạn đã khám phá cách hiệu chỉnh góc lệch cho hình ảnh để cải thiện độ chính xác và hiệu quả của API. Bạn có thể xem qua một số tính năng khác của API bằng cách truy cập Tài liệu, hoặc vui lòng liên hệ với chúng tôi qua Diễn đàn hỗ trợ miễn phí nếu có bất kỳ thắc mắc nào.

Xem thêm