Български OCR в C#и .NET

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

IronOCR е софтуерен компонент C #, позволяващ на .NET кодерите да четат текст от изображения и PDF документи на 126 език, включително български.

Това е усъвършенствана вилка на Tesseract, създадена изключително за разработчиците .NET и редовно превъзхожда останалите двигатели на Tesseract както по скорост, така и по точност.

Съдържание на IronOcr.Languages.Bulgarian

Този пакет съдържа 52 OCR езика за .NET:

  • български
  • BulgarianBest
  • BulgarianFast

Изтегли

Български езиков пакет [български език]
* Download as Цип
* Install with
https://www.nuget.org/packages/IronOcr.Languages.Bulgarian/'> NuGet

Инсталация

Първото нещо, което трябва да направим, е да инсталираме нашия български OCR пакет във вашия .NET проект.

PM> Install-Package IronOCR.Languages.Bulgarian

Пример за код

Този пример за C#код чете български текст от Image или PDF документ.

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

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

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

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

Защо да изберете IronOCR?

IronOCR е лесна за инсталиране, пълна и добре документирана .NET софтуерна библиотека.

Изберете IronOCR, за да постигнете 99,8% + OCR точност, без да използвате никакви външни уеб услуги, текущи такси или изпращане на поверителни документи по интернет.

Защо разработчиците на C#избират IronOCR пред Vanilla Tesseract:

  • Инсталирайте като единична DLL или NuGet
  • Включва за Tesseract 5, 4 и 3 двигатели от кутията.
  • Точността 99,8% значително превъзхожда обикновения Tesseract.
  • Пламнала скорост и MultiThreading
  • Съвместим с MVC, WebApp, Desktop, конзола и сървърно приложение
  • Няма Exes или C ++ код за работа
  • Пълна поддръжка на OCR за 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 с желязо блести при работа с изображения от реалния свят и несъвършени документи като снимки или сканиране с ниска разделителна способност, които могат да имат цифров шум или несъвършенства.

Други безплатни OCR библиотеки за платформата .NET, като например други API на .net tesseract и уеб услуги, не се представят толкова добре в тези случаи на използване в реалния свят.

OCR с Tesseract 5 - Стартирайте кодирането в C #

Примерът по-долу показва колко лесно е да се чете текст от изображение с помощта на C#или VB .NET.

OneLiner

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#

Конфигурируем Hello World

// PM> Install-Package IronOCR.Languages.Bulgarian
using IronOcr;

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

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

Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Bulgarian
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.Bulgarian;
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.Bulgarian;
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.Bulgarian
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 за MultiPage TIFF

OCR четене на TIFF файлов формат, включително многостранични документи. TIFF може също да се преобразува директно в PDF файл с текст, който може да се търси.

using IronOcr;

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

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.Bulgarian;

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.Bulgarian

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 класа 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#

OCR за специфични области на изображения

Всички методи за сканиране и четене на OCR на Iron осигуряват възможността точно да посочим от коя част на страница или страници искаме да четем текст. Това е много полезно, когато разглеждаме стандартизирани формуляри и може да спести ужасно много време и да подобри ефективността.

За да използваме области за изрязване, ще трябва да добавим системна препратка към System.Drawing за да можем да използваме обекта System.Drawing.Rectangle .

using IronOcr;

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

using (var Input = new OcrInput())
{
var ContentArea = new System.Drawing.Rectangle() { X = 215, Y = 1250, Height = 280, Width = 1335 };
// Размерите са в px

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

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

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

using (var Input = new OcrInput())
{
var ContentArea = new System.Drawing.Rectangle() { X = 215, Y = 1250, Height = 280, Width = 1335 };
// Размерите са в px

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

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

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

Using Input = New OcrInput()
Dim ContentArea = New System.Drawing.Rectangle() With {
	.X = 215,
	.Y = 1250,
	.Height = 280,
	.Width = 1335
}
' Размерите са в px

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

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

OCR за нискокачествени сканирания

Класът IronOCR OcrInput може да поправи сканирания, които нормалният Tesseract не може да прочете.

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

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.Bulgarian;

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.Bulgarian

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#

Експортирайте резултатите от OCR като PDF с възможност за търсене

Изображение в PDF с копируеми текстови низове. Може да се индексира от търсачките и базите данни.

using IronOcr;

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

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.Bulgarian;

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.Bulgarian

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.Bulgarian;

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.Bulgarian;

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.Bulgarian

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

Експортирайте резултатите от OCR като HTML

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

using IronOcr;

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Bulgarian;
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.Bulgarian;
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.Bulgarian
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 по-високо качество, за да се получат по-добри и по-бързи резултати за OCR.

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

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.Bulgarian;

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.Bulgarian

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

Списък с OCR филтри за изображения

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

  • OcrInput.Rotate (двойни градуси) - Завърта изображенията с определен брой градуси по часовниковата стрелка. За обратно на часовниковата стрелка използвайте отрицателни числа.
  • OcrInput.Binarize () - Този филтър за изображения превръща всеки пиксел в черно или бяло, без средно положение. Може да подобри случаите на изпълнение на OCR с много нисък контраст на текст към фона.
  • OcrInput.ToGrayScale () - Този филтър за изображения превръща всеки пиксел в нюанс на сивата скала. Малко вероятно е да подобри точността на OCR, но може да подобри скоростта
  • OcrInput.Contrast () - Увеличава автоматично контраста. Този филтър често подобрява скоростта и точността на OCR при сканиране с нисък контраст.
  • OcrInput.DeNoise () - Премахва цифровия шум. Този филтър трябва да се използва само там, където се очаква шум.
  • OcrInput.Invert () - Инвертира всеки цвят. Например бялото става черно: черното става бяло.
  • OcrInput.Dilate () - Разширена морфология. Разширението добавя пиксели към границите на обекти в изображение. Срещу Erode
  • OcrInput.Erode () - Разширена морфология. Ерозията премахва пикселите по границите на обекта, За разлика от разширяването
  • OcrInput.Deskew () - Завърта изображение, така че да е по правилния път нагоре и ортогонално. Това е много полезно за OCR, тъй като толерансът на Tesseract за изкривени сканирания може да бъде до 5 градуса.
  • OcrInput.DeepCleanBackgroundNoise () - Премахване на силен фонов шум. Използвайте този филтър само в случай, че е известен екстремен фонов шум на документа, тъй като този филтър също ще рискува да намали точността на OCR на чистите документи и е много скъп за процесора.
  • OcrInput.EnhanceResolution - Подобрява разделителната способност на изображения с ниско качество. Този филтър не е често необходим, защото OcrInput.MinimumDPI и OcrInput.TargetDPI автоматично ще улавят и разрешават входове с ниска разделителна способност.

CleanBackgroundNoise. Това е настройка, която отнема малко време; той обаче позволява на библиотеката автоматично да почиства цифровия шум, мачкането на хартия и други несъвършенства в рамките на цифрово изображение, което иначе би го направило неспособно за четене от други OCR библиотеки.

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

EnhanceResolution е настройка, която автоматично ще открива изображения с ниска разделителна способност (които са под 275 dpi) и автоматично увеличава мащаба на изображението и след това изостря целия текст, за да може да се чете перфектно от OCR библиотека. Въпреки че тази операция сама по себе си отнема време, тя обикновено намалява общото време за OCR операция върху изображение.

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

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

ColorSpace е настройка, при която можем да изберем OCR в сива скала или цвят. Като цяло сивата скала е най-добрият вариант. Понякога обаче, когато има текстове или фонове с подобен оттенък, но много различен цвят, пълноцветното цветово пространство ще осигури по-добри резултати.

DetectWhiteTextOnDarkBackgrounds. По принцип всички OCR библиотеки очакват да виждат черен текст на бял фон. Тази настройка позволява на IronOCR да открива автоматично негативи или тъмни страници с бял текст и да ги чете.

InputImageType. Тази настройка позволява на разработчика да насочва OCR библиотеката дали разглежда пълен документ или фрагмент, като например екранна снимка.

RotateAndStraighten е усъвършенствана настройка, която позволява на IronOCR уникалната възможност за четене на документи, които не само се завъртат, но може би съдържат перспектива, като снимки на текстови документи.

ReadBarcodes е полезна функция, която позволява на IronOCR да чете автоматично баркодове и QR кодове на страници, тъй като също чете текст, без да добавя голяма допълнителна тежест за времето.

Дълбочина на цвета. Тази настройка определя колко бита на пиксел ще използва OCR библиотеката за определяне на дълбочината на даден цвят. По-високата дълбочина на цветовете може да повиши качеството на OCR, но също така ще увеличи времето, необходимо за завършване на операцията за OCR.

126 Езикови пакети

IronOCR поддържа 126 международни езика чрез езикови пакети, които се разпространяват като DLL, които могат да бъдат изтеглени от този уебсайт или също от NuGet Package Manager .

Езиците включват немски, френски, английски, китайски, японски и много други. Съществуват специализирани езикови пакети за паспорт MRZ, MICR чекове, финансови данни, регистрационни табели и много други. Можете също така да използвате всеки файл ".traineddata" на tesseract - включително тези, които създавате сами.

Пример за език

Използване на други 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.Bulgarian);

// Можем да добавим произволен брой езици

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.Bulgarian);

// Можем да добавим произволен брой езици

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.Bulgarian)

' Можем да добавим произволен брой езици

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 на този обект, за да получат сканирания текст от изображението. Въпреки това, резултатите от OCR DOM е много по-напреднал от този.

using IronOcr;
using System.Drawing; //Добавете справка за монтаж

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Bulgarian;
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.Bulgarian;
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.Bulgarian
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% по-малко грешки от предишните компилации.

Научете повече

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

Налична е и пълна справка за обекти за разработчици .NET .