Giới thiệu
Aspose.OCR FOSS cho .NET là một thư viện C# mã nguồn mở mới dành cho việc phát hiện và nhận dạng văn bản trong hình ảnh raster và tài liệu PDF. Nó được xây dựng cho các nhà phát triển .NET cần nhận dạng văn bản mà không phụ thuộc vào dịch vụ OCR bên ngoài, một API đám mây, hoặc bất kỳ môi trường chạy nào sở hữu.
Thư viện được cấp phép MIT và không có phụ thuộc OCR bên ngoài: toàn bộ quy trình nhận dạng — phát hiện dòng văn bản, tinh chỉnh vùng, và nhận dạng chữ Latin — chạy cục bộ thông qua ba mô hình ONNX được nhúng trực tiếp trong assembly và thực thi trên CPU qua Microsoft.ML.OnnxRuntime. Không cần bước tải xuống mô hình và không có cuộc gọi mạng nào được yêu cầu khi chạy.
Các thành phần có sẵn
Nhận dạng hình ảnh và PDF thông qua một điểm vào duy nhất
AsposeOcr.Recognize() là điểm vào duy nhất cho cả hai loại đầu vào. Một OcrInput được xây dựng bằng InputType.SingleImage hoặc InputType.PDF, và một hoặc nhiều đường dẫn tệp được đưa vào hàng đợi bằng OcrInput.Add(). Đối với InputType.PDF, mỗi trang được nhận dạng và trả về theo thứ tự nguồn.
using Aspose.OCR;
var api = new AsposeOcr();
using var input = new OcrInput(InputType.SingleImage);
input.Add("scan.png");
RecognitionResult result = api.Recognize(input)[0];
Console.WriteLine(result.RecognitionText);
Văn bản cấp dòng và tọa độ pixel
Mỗi RecognitionResult trả về toàn bộ văn bản trang thông qua RecognitionText, và các dòng được nhận dạng riêng lẻ thông qua RecognitionLinesResult — một danh sách các mục RecognitionResult.LinesResult, mỗi mục cung cấp TextInLine và một System.Drawing.Rectangle trong Line cho tọa độ pixel của dòng đó trong ảnh nguồn.
foreach (RecognitionResult.LinesResult line in result.RecognitionLinesResult)
{
Console.WriteLine($"{line.Line}: {line.TextInLine}");
}
Xử lý Hàng loạt Nhiều Tệp
OcrInput có thể chứa hơn một tệp. OcrOutput — giá trị trả về của Recognize() — là một danh sách các RecognitionResult, một cho mỗi ảnh hoặc trang PDF, giữ nguyên thứ tự ban đầu các tệp được thêm vào.
using var input = new OcrInput(InputType.SingleImage);
input.Add("page-1.jpg");
input.Add("page-2.png");
OcrOutput output = api.Recognize(input);
Bắt đầu nhanh
dotnet add package Aspose.OCR.FOSSVí dụ dưới đây nhận dạng mọi trang của một PDF bằng AsposeOcr.Recognize() và in ra văn bản của mỗi trang cùng với các dòng được nhận dạng riêng lẻ và tọa độ pixel của chúng.
using Aspose.OCR;
var api = new AsposeOcr();
using var input = new OcrInput(InputType.PDF);
input.Add("document.pdf");
OcrOutput output = api.Recognize(input);
foreach (RecognitionResult page in output)
{
Console.WriteLine(page.RecognitionText);
foreach (RecognitionResult.LinesResult line in page.RecognitionLinesResult)
{
Console.WriteLine($"{line.Line}: {line.TextInLine}");
}
}
Các loại đầu vào duy nhất được hỗ trợ là InputType.SingleImage và InputType.PDF; bất kỳ loại đầu vào nào khác sẽ gây ra NotSupportedException.
Mã nguồn mở & Giấy phép
Aspose.OCR FOSS cho .NET được phát hành dưới giấy phép MIT. Nó có thể được sử dụng, sửa đổi và phân phối lại — bao gồm trong các sản phẩm thương mại — mà không có phí giấy phép bổ sung. Mã nguồn có sẵn trên GitHub.