บทนำ
Aspose.OCR FOSS สำหรับ .NET เป็นไลบรารี C# แบบโอเพ่นซอร์สใหม่สำหรับการตรวจจับและจดจำข้อความในภาพเรสเตอร์และเอกสาร PDF. มันถูกสร้างขึ้นสำหรับนักพัฒนา .NET ที่ต้องการการจดจำข้อความโดยไม่ต้องพึ่งพาบริการ OCR ภายนอก, API บนคลาวด์, หรือรันไทม์ที่เป็นกรรมสิทธิ์ใด ๆ.
ไลบรารีนี้ใช้สัญญาอนุญาต 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.