OCR для PDF в среде .NET

Другие версии этого документа:

IronOCR - это программный компонент C#, позволяющий читать текст с изображений и PDF-документов на 126 языках, включая русский.

Это усовершенствованный форк Tesseract, созданный исключительно для разработчиков .NET и регулярно превосходящий другие движки Tesseract как по скорости, так и по точности.

Как скачать OCR для PDF

Пакет русского языка можно скачать здесь:

  • Скачать Zip файл.
  • Скачать с сайта NuGet

Как установить OCR

Первое, что нужно сделать, это установить пакет русского распознавания текста в ваш .NET-проект.

PM > Install-Package IronOCR.Languages.Russian

Пример кода

Этот пример кода читает русский текст с изображения / документа PDF.

//PM> Install-Package IronOcr.Languages.Russian
using IronOcr;

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Russian;
using (var Input = new OcrInput(@"images\Russian.png"))
{
var Result = Ocr.Read(Input);
Var AllText = Result.Text
}
//PM> Install-Package IronOcr.Languages.Russian
using IronOcr;

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Russian;
using (var Input = new OcrInput(@"images\Russian.png"))
{
var Result = Ocr.Read(Input);
Var AllText = Result.Text
}
'PM> Install-Package IronOcr.Languages.Russian
Imports IronOcr

Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Russian
Using Input = New OcrInput("images\Russian.png")
Dim Result = Ocr.Read(Input)
Dim AllText As Var = Result.Text
End Using
VB   C#

Почему разработчики C# выбирают IronOCR вместо Vanilla Tesseract?

IronOCR - это простая в установке программная библиотека .NET с подробной документацией.

IronOCR позволяет достичь точности оптического распознавания текста вплоть до 99,8%+ без использования каких-либо внешних веб-сервисов.

Другие плюсы:

  • Простая установка
  • В комплект входят Tesseract 5, 4 и 3.
  • Точность 99,8%, что превосходит обычный Tesseract.
  • Молниеносная скорость и многопоточность.
  • Совместимость с MVC, WebApp, Desktop, Console и Server Application.
  • Полная поддержка PDF OCR.
  • Возможность работы почти с любыми изображениями или PDF файлами
  • Полная поддержка .NET Core, Standard и FrameWork
  • Поддержка Windows, Mac, Linux, Azure, Docker, Lambda, AWS
  • Возможность считывать штрих-коды и QR-коды
  • Экспорт OCR как XHTML документ
  • Экспорт OCR в PDF-документы с возможностью поиска
  • 126 международных языков, управление которыми осуществляется через файлы NuGet или OcrData.
  • Возможность извлекать не только текст, но и изображения, координаты, статистику и шрифты.
  • Может использоваться для распространения Tesseract OCR внутри коммерческих и проприетарных приложений.

Отлично подходит при работе с изображениями и несовершенными документами, например: фотографии, сканированные изображения с низким разрешением, документы с цифровым шумом и дефектами.

Другие бесплатные библиотеки OCR для платформы .NET, не так хороши в реальных случаях использования.

OCR с Tesseract 5 - примеры кода

В приведенном ниже примере кода показано, насколько легко читать текст с изображения с помощью C# или VB .NET.

string Text = new IronTesseract().Read(@"img\Screenshot.png").Text;
string Text = new IronTesseract().Read(@"img\Screenshot.png").Text;
Dim Text As String = (New IronTesseract()).Read("img\Screenshot.png").Text
VB   C#
// PM> Install-Package IronOCR.Languages.Russian
using IronOcr;

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Russian;
using (var Input = new OcrInput()){
Input.AddImage("images/sample.jpeg")
//... вы можете добавить любое количество изображений
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
// PM> Install-Package IronOCR.Languages.Russian
using IronOcr;

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Russian;
using (var Input = new OcrInput()){
Input.AddImage("images/sample.jpeg")
//... вы можете добавить любое количество изображений
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
' PM> Install-Package IronOCR.Languages.Russian
Imports IronOcr

Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Russian
Using Input = New OcrInput()
Input.AddImage("images/sample.jpeg") var Result = Ocr.Read(Input)
Console.WriteLine(Result.Text)
End Using
VB   C#

C#PDF OCR

Тот же подход можно аналогичным образом использовать для извлечения текста из любого документа PDF.

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Russian;
using (var input = new OcrInput())
{
input.AddPdf("example.pdf", "password");
// Мы также можем выбрать определенные номера страниц PDF для OCR.

var Result = Ocr.Read(input);

Console.WriteLine(Result.Text);
Console.WriteLine($"{Result.Pages.Count()} Pages");
// 1 страница на каждую страницу PDF
}
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Russian;
using (var input = new OcrInput())
{
input.AddPdf("example.pdf", "password");
// Мы также можем выбрать определенные номера страниц PDF для OCR.

var Result = Ocr.Read(input);

Console.WriteLine(Result.Text);
Console.WriteLine($"{Result.Pages.Count()} Pages");
// 1 страница на каждую страницу PDF
}
Dim Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Russian
Using input = New OcrInput()
input.AddPdf("example.pdf", "password")
' Мы также можем выбрать определенные номера страниц PDF для OCR.

Dim Result = Ocr.Read(input)

Console.WriteLine(Result.Text)
Console.WriteLine($"{Result.Pages.Count()} Pages")
' 1 страница на каждую страницу PDF
End Using
VB   C#

OCR для многостраничных файлов TIFF

OCR Чтение формата файлов TIFF. Этот формат также можно преобразовать непосредственно в файл PDF с возможностью поиска текста.

using IronOcr;

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Russian;

using (var Input = new OcrInput()){
input.AddMultiFrameTiff("multi - frame.tiff");
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
using IronOcr;

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Russian;

using (var Input = new OcrInput()){
input.AddMultiFrameTiff("multi - frame.tiff");
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
Imports IronOcr

Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Russian

Using Input = New OcrInput()
input.AddMultiFrameTiff("multi - frame.tiff")
Dim Result = Ocr.Read(Input)
Console.WriteLine(Result.Text)
End Using
VB   C#

Штрих-коды и QR

Уникальной особенностью IronOCR является то, что он может считывать штрих-коды и QR-коды из документов во время сканирования текста. Экземпляры класса OcrResult.OcrBarcode предоставляют разработчику подробную информацию о каждом сканированном штрих-коде.

// using IronOcr;
var Ocr = new IronTesseract();
Ocr.Configuration.ReadBarCodes = true;

using (var input = new OcrInput())
{
input.AddImage("img/Barcode.png");
var Result = Ocr.Read(input);
foreach (var Barcode in Result.Barcodes)
{
Console.WriteLine(Barcode.Value);
// также доступны свойства типа и местоположения
}
}
// using IronOcr;
var Ocr = new IronTesseract();
Ocr.Configuration.ReadBarCodes = true;

using (var input = new OcrInput())
{
input.AddImage("img/Barcode.png");
var Result = Ocr.Read(input);
foreach (var Barcode in Result.Barcodes)
{
Console.WriteLine(Barcode.Value);
// также доступны свойства типа и местоположения
}
}
' using IronOcr;
Dim Ocr = New IronTesseract()
Ocr.Configuration.ReadBarCodes = True

Using input = New OcrInput()
input.AddImage("img/Barcode.png")
Dim Result = Ocr.Read(input)
For Each Barcode In Result.Barcodes
Console.WriteLine(Barcode.Value)
' также доступны свойства типа и местоположения
Next Barcode
End Using
VB   C#

Распознавание части документа

Все методы сканирования и чтения IronOCR предоставляют возможность точно указать, с какой части страницы мы хотим прочитать текст. Это очень полезно, когда мы рассматриваем стандартизованные формы.

Чтобы использовать области обрезки, нам нужно добавить системную ссылку на System.Drawing чтобы мы могли использовать объект System.Drawing.Rectangle .

using IronOcr;

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Russian;

using (var Input = new OcrInput())
{
var ContentArea = new System.Drawing.Rectangle() { X = 215, Y = 1250, Height = 280, Width = 1335 };
// Размеры указаны в пикселях

Input.Add("document.png", ContentArea);

var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
using IronOcr;

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Russian;

using (var Input = new OcrInput())
{
var ContentArea = new System.Drawing.Rectangle() { X = 215, Y = 1250, Height = 280, Width = 1335 };
// Размеры указаны в пикселях

Input.Add("document.png", ContentArea);

var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
Imports IronOcr

Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Russian

Using Input = New OcrInput()
Dim ContentArea = New System.Drawing.Rectangle() With {
	.X = 215,
	.Y = 1250,
	.Height = 280,
	.Width = 1335
}
' Размеры указаны в пикселях

Input.Add("document.png", ContentArea)

Dim Result = Ocr.Read(Input)
Console.WriteLine(Result.Text)
End Using
VB   C#

Распознавание сканирования низкого качества

Класс IronOCR OcrInput может исправить сканирование, которое обычный Tesseract не может прочитать.

using IronOcr;
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Russian;

using (var Input = new OcrInput(@"img\Potter.LowQuality.tiff"))
{
Input.DeNoise(); // устраняет цифровой шум и плохое сканирование
Input.Deskew(); // исправляет вращение и перспективу
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
using IronOcr;
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Russian;

using (var Input = new OcrInput(@"img\Potter.LowQuality.tiff"))
{
Input.DeNoise(); // устраняет цифровой шум и плохое сканирование
Input.Deskew(); // исправляет вращение и перспективу
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
Imports IronOcr
Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Russian

Using Input = New OcrInput("img\Potter.LowQuality.tiff")
Input.DeNoise() ' устраняет цифровой шум и плохое сканирование
Input.Deskew() ' исправляет вращение и перспективу
Dim Result = Ocr.Read(Input)
Console.WriteLine(Result.Text)
End Using
VB   C#

Экспорт результатов распознавания в виде PDF-файла с возможностью поиска

Изображение в PDF с копируемыми текстовыми строками. Может индексироваться поисковыми системами и базами данных.

using IronOcr;

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Russian;

using (var Input = new OcrInput()){
input.Title = "Quarterly Report"
input.AddImage("image1.jpeg");
input.AddImage("image2.png");
input.AddImage("image3.gif");

var Result = Ocr.Read(input);
Result.SaveAsSearchablePdf("searchable.pdf")
}
using IronOcr;

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Russian;

using (var Input = new OcrInput()){
input.Title = "Quarterly Report"
input.AddImage("image1.jpeg");
input.AddImage("image2.png");
input.AddImage("image3.gif");

var Result = Ocr.Read(input);
Result.SaveAsSearchablePdf("searchable.pdf")
}
Imports IronOcr

Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Russian

Using Input = New OcrInput()
input.Title = "Quarterly Report" input.AddImage("image1.jpeg")
input.AddImage("image2.png")
input.AddImage("image3.gif")

Dim Result = Ocr.Read(input)
Result.SaveAsSearchablePdf("searchable.pdf")
End Using
VB   C#

Преобразование TIFF в PDF с возможностью поиска

Преобразовывайте документ TIFF (или любую группу файлов изображений) непосредственно в PDF-файл с возможностью поиска, который может быть проиндексирован в интрасети, на веб-сайте и в поисковых системах Google.

using IronOcr;

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Russian;

using (var Input = new OcrInput()){
input.AddMultiFrameTiff("example.tiff")
var Result = Ocr.Read(input).SaveAsSearchablePdf("searchable.pdf")
}
using IronOcr;

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Russian;

using (var Input = new OcrInput()){
input.AddMultiFrameTiff("example.tiff")
var Result = Ocr.Read(input).SaveAsSearchablePdf("searchable.pdf")
}
Imports IronOcr

Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Russian

Using Input = New OcrInput()
input.AddMultiFrameTiff("example.tiff") var Result = Ocr.Read(input).SaveAsSearchablePdf("searchable.pdf")
End Using
VB   C#

Экспорт результатов распознавания текста в формате HTML

Преобразование изображения OCR в XHTML.

using IronOcr;

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Russian;
using (var Input = new OcrInput()){
input.Title = "Html Title"
input.AddImage("image1.jpeg");
var Result = Ocr.Read(input);
Result.SaveAsHocrFile("results.html");
}
using IronOcr;

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Russian;
using (var Input = new OcrInput()){
input.Title = "Html Title"
input.AddImage("image1.jpeg");
var Result = Ocr.Read(input);
Result.SaveAsHocrFile("results.html");
}
Imports IronOcr

Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Russian
Using Input = New OcrInput()
input.Title = "Html Title" input.AddImage("image1.jpeg")
Dim Result = Ocr.Read(input)
Result.SaveAsHocrFile("results.html")
End Using
VB   C#

Фильтры улучшения изображения OCR

IronOCR предоставляет уникальные фильтры для объектов OcrInput для повышения производительности распознавания текста.

Пример кода улучшения изображения

Повышает качество входных изображений OCR для получения более качественных и быстрых результатов OCR.

using IronOcr;
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Russian;

using (var Input = new OcrInput(@"LowQuality.jpeg"))
{
Input.DeNoise(); // устраняет цифровой шум и плохое сканирование
Input.Deskew(); // исправляет вращение и перспективу
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
using IronOcr;
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Russian;

using (var Input = new OcrInput(@"LowQuality.jpeg"))
{
Input.DeNoise(); // устраняет цифровой шум и плохое сканирование
Input.Deskew(); // исправляет вращение и перспективу
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
Imports IronOcr
Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Russian

Using Input = New OcrInput("LowQuality.jpeg")
Input.DeNoise() ' устраняет цифровой шум и плохое сканирование
Input.Deskew() ' исправляет вращение и перспективу
Dim Result = Ocr.Read(Input)
Console.WriteLine(Result.Text)
End Using
VB   C#

Список фильтров изображений OCR

Входные фильтры для повышения производительности оптического распознавания текста, встроенные в IronOCR, включают:

OcrInput.Rotate (двойные градусы) - поворачивает изображения на определенное количество градусов по часовой стрелке. Для вращения против часовой стрелки используйте отрицательные числа.

OcrInput.Binarize () - этот фильтр изображения превращает каждый пиксель в черный или белый без средней основы. Может улучшить производительность распознавания текста в случаях очень низкого контраста текста по сравнению с фоном.

OcrInput.ToGrayScale () - этот фильтр изображения превращает каждый пиксель в оттенок серого. Маловероятно, чтобы улучшить точность распознавания, но может повысить скорость

OcrInput.Contrast () - автоматически увеличивает контраст. Этот фильтр часто улучшает скорость и точность распознавания текста при сканировании с низким контрастом.

OcrInput.DeNoise () - Удаляет цифровой шум. Этот фильтр следует использовать только там, где ожидается шум.

OcrInput.Invert () - инвертирует каждый цвет. Например, белый становится черным: черный становится белым.

OcrInput.Dilate () - Расширенная морфология. Расширение добавляет пиксели к границам объектов изображения. Напротив Эроде

OcrInput.Erode () - Расширенная морфология. Эрозия удаляет пиксели на границах объекта, напротив Dilate

OcrInput.Deskew () - поворачивает изображение так, чтобы оно было правильным и ортогональным. Это очень полезно для оптического распознавания символов, поскольку допуск Tesseract для перекоса сканирования может составлять всего 5 градусов.

OcrInput.DeepCleanBackgroundNoise () - Удаление сильного фонового шума. Используйте этот фильтр только в том случае, если известен сильный фоновый шум документа, потому что этот фильтр также может снизить точность распознавания чистых документов и требует больших затрат на ЦП.

OcrInput.EnhanceResolution - Повышает разрешение изображений низкого качества. Этот фильтр не часто требуется, поскольку OcrInput.MinimumDPI и OcrInput.TargetDPI автоматически перехватывают и разрешают входные данные с низким разрешением.

CleanBackgroundNoise. Это настройка, отнимающая некоторое время; тем не менее, это позволяет библиотеке автоматически очищать цифровой шум, скомканную бумагу и другие дефекты в цифровом изображении, которые в противном случае сделали бы его недоступным для чтения другими библиотеками OCR.

EnhanceContrast - это параметр, который заставляет IronOCR автоматически увеличивать контраст текста на фоне изображения, повышая точность OCR и в целом повышая производительность и скорость OCR.

EnhanceResolution - это параметр, который автоматически обнаруживает изображения с низким разрешением (которые меньше 275 dpi) и автоматически масштабирует изображение, а затем повышает резкость всего текста, чтобы его можно было идеально прочитать библиотекой OCR. Хотя эта операция сама по себе занимает много времени, она обычно сокращает общее время операции распознавания текста с изображением.

Language IronOCR поддерживает 22 международных языковых пакета, и настройку языка можно использовать для выбора одного или нескольких языков, которые будут применяться для операции OCR.

Стратегия IronOCR поддерживает две стратегии. Мы можем выбрать либо быстрое и менее точное сканирование документа, либо использование продвинутой стратегии, которая использует некоторые модели искусственного интеллекта для автоматического повышения точности текста OCR, глядя на статистические отношения слов друг к другу в предложении. .

ColorSpace - это настройка, с помощью которой мы можем выбрать OCR в оттенках серого или в цвете. Как правило, оттенки серого - лучший вариант. Однако иногда, когда есть текст или фон схожего оттенка, но очень разного цвета, полноцветное цветовое пространство дает лучшие результаты.

DetectWhiteTextOnDarkBackgrounds. Как правило, все библиотеки OCR ожидают увидеть черный текст на белом фоне. Этот параметр позволяет IronOCR автоматически обнаруживать негативы или темные страницы с белым текстом и читать их.

InputImageType. Этот параметр позволяет разработчику управлять библиотекой OCR относительно того, просматривает ли она полный документ или фрагмент, например снимок экрана.

RotateAndStraighten - это расширенная настройка, которая дает IronOCR уникальную возможность читать документы, которые не только повернуты, но, возможно, содержат перспективу, например фотографии текстовых документов.

ReadBarcodes - это полезная функция, которая позволяет IronOCR автоматически считывать штрих-коды и QR-коды на страницах, так же как и текст, без дополнительных затрат времени.

Глубина цвета. Этот параметр определяет, сколько битов на пиксель будет использовать библиотека OCR для определения глубины цвета. Более высокая глубина цвета может повысить качество распознавания текста, но также увеличит время, необходимое для завершения операции распознавания текста.

126 языковых пакетов

IronOCR поддерживает 126 международных языков через языковые пакеты, которые распространяются как библиотеки DLL, которые можно загрузить с этого веб-сайта или также из диспетчера пакетов NuGet .

Языки включают немецкий, французский, английский, китайский, японский и многие другие. Существуют специальные языковые пакеты для паспорта MRZ, чеков MICR, финансовых данных, номерных знаков и многого другого. Вы также можете использовать любой файл tesseract ".traineddata", включая те, которые вы создаете сами.

Пример языка

Использование других языков OCR.

// using IronOcr;
// PM> Install IronOcr.Languages.Arabic

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Arabic;

using (var input = new OcrInput())
{
input.AddImage("img/arabic.gif");
// При необходимости добавьте фильтры изображений
// В этом случае даже мысленный ввод очень низкого качества
// IronTesseract может читать то, что не умеет обычный Tesseract.

var Result = Ocr.Read(input);

// Консоль не может легко печатать арабский язык в Windows.
// Вместо этого сохраним на диск.
Result.SaveAsTextFile("arabic.txt");
}
// using IronOcr;
// PM> Install IronOcr.Languages.Arabic

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Arabic;

using (var input = new OcrInput())
{
input.AddImage("img/arabic.gif");
// При необходимости добавьте фильтры изображений
// В этом случае даже мысленный ввод очень низкого качества
// IronTesseract может читать то, что не умеет обычный Tesseract.

var Result = Ocr.Read(input);

// Консоль не может легко печатать арабский язык в Windows.
// Вместо этого сохраним на диск.
Result.SaveAsTextFile("arabic.txt");
}
' using IronOcr;
' PM> Install IronOcr.Languages.Arabic

Dim Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Arabic

Using input = New OcrInput()
input.AddImage("img/arabic.gif")
' При необходимости добавьте фильтры изображений
' В этом случае даже мысленный ввод очень низкого качества
' IronTesseract может читать то, что не умеет обычный Tesseract.

Dim Result = Ocr.Read(input)

' Консоль не может легко печатать арабский язык в Windows.
' Вместо этого сохраним на диск.
Result.SaveAsTextFile("arabic.txt")
End Using
VB   C#

Пример нескольких языков

Также возможно OCR с использованием нескольких языков одновременно. Это действительно может помочь получить метаданные на английском языке и URL-адреса в документах Unicode.

// using IronOcr;
// PM> Install IronOcr.Languages.ChineseSimplified

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.ChineseSimplified;
Ocr.AddSecondaryLanguage(OcrLanguage.Russian);

// Мы можем добавить любое количество языков

using (var input = new OcrInput())
{
input.Add("multi - language.pdf");
var Result = Ocr.Read(input);
Result.SaveAsTextFile("results.txt");
}
// using IronOcr;
// PM> Install IronOcr.Languages.ChineseSimplified

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.ChineseSimplified;
Ocr.AddSecondaryLanguage(OcrLanguage.Russian);

// Мы можем добавить любое количество языков

using (var input = new OcrInput())
{
input.Add("multi - language.pdf");
var Result = Ocr.Read(input);
Result.SaveAsTextFile("results.txt");
}
' using IronOcr;
' PM> Install IronOcr.Languages.ChineseSimplified

Dim Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.ChineseSimplified
Ocr.AddSecondaryLanguage(OcrLanguage.Russian)

' Мы можем добавить любое количество языков

Using input = New OcrInput()
input.Add("multi - language.pdf")
Dim Result = Ocr.Read(input)
Result.SaveAsTextFile("results.txt")
End Using
VB   C#

Объекты подробных результатов OCR

IronOCR возвращает объект результата OCR для каждой операции OCR. Как правило, разработчики используют свойство text этого объекта только для сканирования текста с изображения. Однако модель DOM результатов OCR намного более продвинута, чем это.

using IronOcr;
using System.Drawing; //Добавить ссылку на сборку

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Russian;
Ocr.Configuration.EngineMode = TesseractEngineMode.TesseractAndLstm;
Ocr.Configuration.ReadBarCodes = true; //!Важный

using (var Input = new OcrInput(@"images\sample.tiff"))
{
OcrResult Result = Ocr.Read(Input);
var Pages = Result.Pages;
var Words = Pages[0].Words;
var Barcodes = Result.Barcodes;
// Изучите здесь, чтобы найти обширный, подробный API:
// - Страницы, блоки, парафиты, строки, слова, символы
// - Экспорт изображений, координаты шрифтов, статистические данные
}
using IronOcr;
using System.Drawing; //Добавить ссылку на сборку

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Russian;
Ocr.Configuration.EngineMode = TesseractEngineMode.TesseractAndLstm;
Ocr.Configuration.ReadBarCodes = true; //!Важный

using (var Input = new OcrInput(@"images\sample.tiff"))
{
OcrResult Result = Ocr.Read(Input);
var Pages = Result.Pages;
var Words = Pages[0].Words;
var Barcodes = Result.Barcodes;
// Изучите здесь, чтобы найти обширный, подробный API:
// - Страницы, блоки, парафиты, строки, слова, символы
// - Экспорт изображений, координаты шрифтов, статистические данные
}
Imports IronOcr
Imports System.Drawing 'Добавить ссылку на сборку

Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Russian
Ocr.Configuration.EngineMode = TesseractEngineMode.TesseractAndLstm
Ocr.Configuration.ReadBarCodes = True '!Важный

Using Input = New OcrInput("images\sample.tiff")
Dim Result As OcrResult = Ocr.Read(Input)
Dim Pages = Result.Pages
Dim Words = Pages(0).Words
Dim Barcodes = Result.Barcodes
' Изучите здесь, чтобы найти обширный, подробный API:
' - Страницы, блоки, парафиты, строки, слова, символы
' - Экспорт изображений, координаты шрифтов, статистические данные
End Using
VB   C#

IronOCR работает "из коробки" без необходимости настройки производительности или значительного изменения входных изображений.

Скорость IronOcr.2020 + до 10 раз быстрее и делает на 250% меньше ошибок, чем предыдущие сборки.

Подробнее

Чтобы узнать больше об оптическом распознавании текста на C #, VB, F # или любом другом языке .NET, пожалуйста, прочтите наши руководства сообщества , которые дают реальные примеры того, как можно использовать IronOCR, и могут показать нюансы того, как извлечь максимум из эта библиотека.

Также доступен полный справочник по объектам для разработчиков .NET .