Як працювати з Aspose.OCR FOSS Core API у .NET
Aspose.OCR FOSS для .NET розпізнає текст у растрових зображеннях та PDF-документах за допомогою невеликого ядра API: AsposeOcr, OcrInput, OcrOutput та RecognitionResult. Цей посібник покроково описує встановлення пакету та використання цього ядра API від початку до кінця.
Покроковий посібник
Крок 1: Встановлення пакету
dotnet add package Aspose.OCR.FOSSКрок 2: Імпорт простору імен
Додайте простір імен 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(). Цей 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) і приймає лише файли цього типу.