วิธีทำงานกับ Aspose.OCR FOSS Core API ใน .NET
Aspose.OCR FOSS สำหรับ .NET สามารถจดจำข้อความในรูปภาพราสเตอร์และเอกสาร PDF ผ่าน core API เล็ก ๆ: AsposeOcr, OcrInput, OcrOutput และ RecognitionResult. คู่มือนี้อธิบายขั้นตอนการติดตั้งแพคเกจและการใช้ core API นั้นตั้งแต่ต้นจนจบ.
คู่มือแบบขั้นตอนต่อขั้นตอน
ขั้นตอนที่ 1: ติดตั้งแพคเกจ
dotnet add package Aspose.OCR.FOSSขั้นตอนที่ 2: นำเข้า Namespace
เพิ่ม namespace Aspose.OCR ไปยังไฟล์ซอร์สใด ๆ ที่เรียกใช้ AsposeOcr, OcrInput หรือ RecognitionResult:
using Aspose.OCR;เนมสเปซเดียวนี้เปิดเผย AsposeOcr, OcrInput, OcrOutput, InputType และ RecognitionResult.
ขั้นตอนที่ 3: สร้าง OcrInput และทำการรู้จำภาพ
สร้าง AsposeOcr, สร้าง OcrInput ด้วย InputType.SingleImage, คิวไฟล์ด้วย OcrInput.Add(), และเรียก AsposeOcr.Recognize().
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);ขั้นตอนที่ 4: อ่านบรรทัดเดี่ยวและกล่องขอบเขต
แต่ละรายการ RecognitionResult.LinesResult ใน RecognitionLinesResult จะบรรจุข้อความของบรรทัดหนึ่ง (TextInLine) และกล่องขอบเขตที่กำหนดพิกเซล (Line).
foreach (RecognitionResult.LinesResult line in result.RecognitionLinesResult)
{
System.Drawing.Rectangle bounds = line.Line;
Console.WriteLine($"x={bounds.X}, y={bounds.Y}: {line.TextInLine}");
}ขั้นตอนที่ 5: ทำการรู้จำ PDF หลายหน้า
สำหรับ InputType.PDF, AsposeOcr.Recognize() จะคืนค่า RecognitionResult หนึ่งรายการต่อหน้า ตามลำดับของแหล่งที่มา.
using var pdfInput = new OcrInput(InputType.PDF);
pdfInput.Add("document.pdf");
OcrOutput output = api.Recognize(pdfInput);
foreach (RecognitionResult page in output)
{
Console.WriteLine(page.RecognitionText);
}ปัญหาทั่วไปและการแก้ไข
NotSupportedException เมื่อเรียกใช้ Recognize(). The OcrInput ถูกสร้างด้วยประเภทอินพุตที่ไม่ใช่ InputType.SingleImage or InputType.PDF. มีเพียงสองประเภทอินพุตนั้นที่รองรับเท่านั้น.
FileNotFoundException เมื่อเรียกใช้ Recognize(). เส้นทางที่เพิ่มผ่าน OcrInput.Add() ไม่มีอยู่บนดิสก์. ตรวจสอบเส้นทางก่อนเรียกใช้ Add().
ArgumentNullException เมื่อเรียกใช้ Recognize(). null ถูกส่งแทนที่ OcrInput อินสแตนซ์. ให้สร้าง OcrInput แรก.
Empty RecognitionLinesResult. ไม่พบบรรทัดข้อความ — โปรดยืนยันว่าภาพต้นฉบับมีข้อความที่อ่านได้และไม่หมุนในสคริปต์ละติน.
คำถามที่พบบ่อย
OcrOutput รักษาลำดับไฟล์หรือไม่?
ใช่. OcrOutput เป็นรายการของ RecognitionResult, หนึ่งต่อภาพ (หรือหนึ่งต่อหน้า PDF), ตามลำดับที่ไฟล์ถูกเพิ่มผ่าน OcrInput.Add().
ฉันต้องทำลาย OcrInput หรือไม่?
ใช่ — OcrInput ใช้ IDisposable. ใช้คำสั่ง using หรือเรียก Dispose() อย่างชัดเจนเมื่อการจดจำเสร็จสมบูรณ์.
ฉันสามารถประมวลผลทั้งรูปภาพและ PDF ใน OcrInput เดียวกันได้หรือไม่?
ไม่ — แต่ละ OcrInput ถูกสร้างด้วย InputType เดียว (SingleImage หรือ PDF) และรับไฟล์เฉพาะประเภทนั้นเท่านั้น.