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ộtList<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ộtSystem.Drawing.Rectanglecung 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:
| Condition | Exception |
|---|---|
input là null | ArgumentNullException |
input có InputType không phải là SingleImage hoặc PDF | NotSupportedException |
Một đường dẫn được thêm qua OcrInput.Add() không tồn tại trên đĩa | FileNotFoundException |
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
OcrOutputtrống (Count == 0) nếuOcrInputkhông có tệp nào được thêm — hãy kiểm traCounttrước khi lập chỉ mục.RecognitionResult.LinesResultđược lồng bên trongRecognitionResult; tên kiểu cấp trênLinesResultmộ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ân | Sửa |
|---|---|---|
ArgumentNullException trên Recognize() | null đã được truyền thay vì một OcrInput | Luô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/PDF | Chỉ 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ại | Xá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ức | Mô 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) |
OcrOutput | List<RecognitionResult> được trả về bởi Recognize() |
RecognitionResult.RecognitionText | Văn bản nhận dạng đầy đủ cho một hình ảnh/trang |
RecognitionResult.RecognitionLinesResult | List<RecognitionResult.LinesResult> |
RecognitionResult.LinesResult.TextInLine | Văn bản đã nhận dạng cho một dòng |
RecognitionResult.LinesResult.Line | System.Drawing.Rectangle hộp bao cho một dòng |