บทนำ

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.


เริ่มต้นใช้งาน

ทรัพยากรที่เกี่ยวข้อง