مقدمه
Aspose.OCR FOSS برای .NET یک کتابخانهٔ منبعباز جدید C# برای شناسایی و تشخیص متن در تصاویر رستری و اسناد PDF است. این کتابخانه برای توسعهدهندگان .NET ساخته شده است که به تشخیص متن نیاز دارند بدون اینکه به سرویس OCR خارجی، API ابری، یا هر زماناجرای مالکیتی وابسته باشند.
این کتابخانه تحت licence MIT است و هیچ وابستگی به OCR خارجی ندارد: کل خط لولهٔ تشخیص — شناسایی خطوط متن، تصفیهٔ ناحیه، و تشخیص حروفالفبای لاتین — بهصورت محلی از طریق سه مدل ONNX که بهطور مستقیم در اسمبلی تعبیه شدهاند و بر روی CPU توسط Microsoft.ML.OnnxRuntime اجرا میشوند، اجرا میشود. هیچ مرحلهٔ دانلود مدل و هیچ تماس شبکهای در زمان اجرا لازم نیست.
چه چیزهایی شامل میشود
شناسایی تصاویر و PDFها از طریق یک نقطهٔ ورودی
AsposeOcr.Recognize() تک نقطهٔ ورودی برای هر دو نوع ورودی است. یک OcrInput با InputType.SingleImage یا InputType.PDF ساخته میشود و یک یا چند مسیر فایل با OcrInput.Add() در صف قرار میگیرند. برای InputType.PDF، هر صفحه شناسایی شده و به ترتیب منبع بازگردانده میشود.
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);
متن در سطح خط و مختصات پیکسل
هر RecognitionResult متن کامل صفحه را از طریق RecognitionText برمیگرداند و خطوط شناساییشدهٔ فردی را از طریق RecognitionLinesResult — فهرستی از ورودیهای RecognitionResult.LinesResult — که هر کدام TextInLine و یک System.Drawing.Rectangle در Line را نشان میدهند تا مختصات پیکسل آن خط را در تصویر منبع ارائه دهند.
foreach (RecognitionResult.LinesResult line in result.RecognitionLinesResult)
{
Console.WriteLine($"{line.Line}: {line.TextInLine}");
}
گروهبندی چندین فایل
OcrInput میتواند بیش از یک فایل داشته باشد. OcrOutput — مقدار بازگشتی Recognize() — فهرستی از RecognitionResult است، یک مورد برای هر تصویر یا صفحهٔ PDF، که ترتیب اصلی افزودن فایلها را حفظ میکند.
using var input = new OcrInput(InputType.SingleImage);
input.Add("page-1.jpg");
input.Add("page-2.png");
OcrOutput output = api.Recognize(input);
شروع سریع
dotnet add package Aspose.OCR.FOSSمثال زیر هر صفحهٔ یک PDF را با AsposeOcr.Recognize() شناسایی میکند و متن هر صفحه را همراه با خطوط شناساییشدهٔ فردی و مختصات پیکسل آنها چاپ مینماید.
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}");
}
}
تنها انواع ورودی پشتیبانیشده InputType.SingleImage و InputType.PDF هستند؛ هر نوع ورودی دیگر NotSupportedException را ایجاد میکند.
منبع باز و مجوزدهی
Aspose.OCR FOSS برای .NET تحت مجوز MIT منتشر شده است. میتوان آن را استفاده، تغییر و توزیع کرد — از جمله در محصولات تجاری — بدون هزینههای اضافی مجوز. منبع در GitHub در دسترس است.