Cốt lõi API

API cốt lõi

Trang này bao phủ vòng đời đối tượng và hành vi ngoại lệ của bốn kiểu cốt lõi: AsposeOcr, OcrInput, OcrOutput, và RecognitionResult.


OcrInput Vòng đời

OcrInput thực hiện IDisposable và nên được tạo trong một câu lệnh using. Hàm khởi tạo của nó nhận một InputType (InputType.SingleImage hoặc InputType.PDF), và OcrInput.Add(string) xếp hàng một đường dẫn tệp mỗi lần — cùng một thể hiện OcrInput có thể chứa nhiều tệp của cùng loại đầu vào đó.

using Aspose.OCR;

using var input = new OcrInput(InputType.SingleImage);
input.Add("page-1.jpg");
input.Add("page-2.png");

Nhận dạng và Đọc OcrOutput

AsposeOcr.Recognize(OcrInput) trả về một OcrOutput, đó là một List<RecognitionResult> — có thể đánh chỉ mục giống như bất kỳ danh sách nào, với một RecognitionResult cho mỗi hình ảnh (đối với InputType.SingleImage, một cho mỗi tệp được thêm) hoặc cho mỗi trang PDF (đối với InputType.PDF).

var api = new AsposeOcr();
OcrOutput output = api.Recognize(input);
RecognitionResult first = output[0];

RecognitionResult và Kiểu LinesResult Lồng nhau

RecognitionResult.LinesResult là một lớp lồng nhau — tham chiếu nó như RecognitionResult.LinesResult, không phải như một kiểu độc lập. Mỗi RecognitionResult công khai:

  • RecognitionText — văn bản nhận dạng đầy đủ cho hình ảnh hoặc trang đó, với các dòng được nối bằng dấu ngắt dòng.
  • RecognitionLinesResult — một List<RecognitionResult.LinesResult>, một mục cho mỗi dòng văn bản được phát hiện, mỗi mục có TextInLine (văn bản của dòng) và Line (một System.Drawing.Rectangle cung cấp tọa độ pixel của dòng đó trong hình ảnh nguồn).
RecognitionResult result = output[0];
Console.WriteLine(result.RecognitionText);

foreach (RecognitionResult.LinesResult line in result.RecognitionLinesResult)
{
    System.Drawing.Rectangle bounds = line.Line;
    Console.WriteLine($"x={bounds.X}, y={bounds.Y}: {line.TextInLine}");
}

Ngoại lệ

AsposeOcr.Recognize(OcrInput) xác thực đầu vào của nó trước khi chạy nhận dạng:

ConditionException
input là nullArgumentNullException
input có InputType không phải là SingleImage hoặc PDFNotSupportedException
Một đường dẫn được thêm qua OcrInput.Add() không tồn tại trên đĩaFileNotFoundException

Các kiểm tra này chạy trước bất kỳ suy luận mô hình nào, vì vậy đầu vào không hợp lệ sẽ thất bại ngay lập tức thay vì sau một lần nhận dạng một phần.


Mẹo và Thực tiễn tốt nhất

  • OcrOutput trống (Count == 0) nếu OcrInput không có tệp nào được thêm — hãy kiểm tra Count trước khi lập chỉ mục.
  • RecognitionResult.LinesResult được lồng bên trong RecognitionResult; tên kiểu cấp trên LinesResult một mình không phải là kiểu có thể giải quyết được bên ngoài việc lồng đó.

Các vấn đề thường gặp

Vấn đềNguyên nhânSửa
ArgumentNullException trên Recognize()null đã được truyền thay vì một OcrInputLuôn tạo một OcrInput trước khi gọi Recognize()
NotSupportedException trên Recognize()OcrInput đã được tạo với kiểu đầu vào khác SingleImage/PDFChỉ InputType.SingleImage và InputType.PDF là hợp lệ
FileNotFoundException trên Recognize()Đường dẫn trong hàng đợi không tồn tạiXác thực các đường dẫn tệp trước khi gọi OcrInput.Add()

FAQ

Liệu RecognitionResult.LinesResult có phải là lớp cấp cao nhất riêng của nó không?

Không — nó được lồng bên trong RecognitionResult. Tham chiếu nó dưới dạng RecognitionResult.LinesResult.

Liệu OcrOutput có đảm bảo thứ tự trang cho PDF không?

Có — đối với InputType.PDF, OcrOutput trả về một RecognitionResult cho mỗi trang theo thứ tự nguồn.

Điều gì sẽ xảy ra nếu tôi gọi Recognize() với một OcrInput trống?

Nó trả về một OcrOutput với Count == 0 thay vì ném ra lỗi.


API Reference Tóm tắt

Lớp/Phương thứcMô tả
AsposeOcr.Recognize(OcrInput)Xác thực và nhận dạng; ném ArgumentNullException, NotSupportedException hoặc FileNotFoundException khi đầu vào không hợp lệ
OcrInput.OcrInput(InputType)Xây dựng một container đầu vào cho một loại đầu vào
OcrInput.Add(string)Đặt đường dẫn tệp vào hàng đợi
OcrInput.Dispose()Giải phóng tài nguyên (qua IDisposable)
OcrOutputList<RecognitionResult> được trả về bởi Recognize()
RecognitionResult.RecognitionTextVăn bản nhận dạng đầy đủ cho một hình ảnh/trang
RecognitionResult.RecognitionLinesResultList<RecognitionResult.LinesResult>
RecognitionResult.LinesResult.TextInLineVăn bản đã nhận dạng cho một dòng
RecognitionResult.LinesResult.LineSystem.Drawing.Rectangle hộp bao cho một dòng

Xem thêm

 Tiếng Việt