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

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

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

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

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

Този пакет съдържа три 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 документ.

// Install the Bulgarian OCR language package
// PM> Install-Package IronOcr.Languages.Bulgarian
using IronOcr;

var Ocr = new IronTesseract();
// Specify the language for OCR as Bulgarian
Ocr.Language = OcrLanguage.Bulgarian; 

using (var Input = new OcrInput(@"images\Bulgarian.png"))
{
    // Perform OCR on the input image
    var Result = Ocr.Read(Input);
    // Get the extracted text
    var AllText = Result.Text;
    // Output the text to console or another output function as needed
    Console.WriteLine(AllText);
}
// Install the Bulgarian OCR language package
// PM> Install-Package IronOcr.Languages.Bulgarian
using IronOcr;

var Ocr = new IronTesseract();
// Specify the language for OCR as Bulgarian
Ocr.Language = OcrLanguage.Bulgarian; 

using (var Input = new OcrInput(@"images\Bulgarian.png"))
{
    // Perform OCR on the input image
    var Result = Ocr.Read(Input);
    // Get the extracted text
    var AllText = Result.Text;
    // Output the text to console or another output function as needed
    Console.WriteLine(AllText);
}
' Install the Bulgarian OCR language package
' PM> Install-Package IronOcr.Languages.Bulgarian
Imports IronOcr

Private Ocr = New IronTesseract()
' Specify the language for OCR as Bulgarian
Ocr.Language = OcrLanguage.Bulgarian

Using Input = New OcrInput("images\Bulgarian.png")
	' Perform OCR on the input image
	Dim Result = Ocr.Read(Input)
	' Get the extracted text
	Dim AllText = Result.Text
	' Output the text to console or another output function as needed
	Console.WriteLine(AllText)
End Using
$vbLabelText   $csharpLabel

Защо да изберете 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 с IronOCR блести при работа с изображения от реалния свят и несъвършени документи като снимки или сканиране с ниска разделителна способност, които могат да имат цифров шум или несъвършенства.

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

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

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

OneLiner

// Perform OCR on an image in a single line
string Text = new IronTesseract().Read(@"img\Screenshot.png").Text;
Console.WriteLine(Text);
// Perform OCR on an image in a single line
string Text = new IronTesseract().Read(@"img\Screenshot.png").Text;
Console.WriteLine(Text);
' Perform OCR on an image in a single line
Dim Text As String = (New IronTesseract()).Read("img\Screenshot.png").Text
Console.WriteLine(Text)
$vbLabelText   $csharpLabel

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

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

var Ocr = new IronTesseract();
// Set Bulgarian as the OCR language
Ocr.Language = OcrLanguage.Bulgarian;

using (var Input = new OcrInput())
{
     // Add image to the OCR input
     Input.AddImage("images/sample.jpeg");
     // You can add any number of images
     var Result = Ocr.Read(Input);
     // Output the recognized text
     Console.WriteLine(Result.Text);
}
// PM> Install-Package IronOCR.Languages.Bulgarian
using IronOcr;

var Ocr = new IronTesseract();
// Set Bulgarian as the OCR language
Ocr.Language = OcrLanguage.Bulgarian;

using (var Input = new OcrInput())
{
     // Add image to the OCR input
     Input.AddImage("images/sample.jpeg");
     // You can add any number of images
     var Result = Ocr.Read(Input);
     // Output the recognized text
     Console.WriteLine(Result.Text);
}
' PM> Install-Package IronOCR.Languages.Bulgarian
Imports IronOcr

Private Ocr = New IronTesseract()
' Set Bulgarian as the OCR language
Ocr.Language = OcrLanguage.Bulgarian

Using Input = New OcrInput()
	 ' Add image to the OCR input
	 Input.AddImage("images/sample.jpeg")
	 ' You can add any number of images
	 Dim Result = Ocr.Read(Input)
	 ' Output the recognized text
	 Console.WriteLine(Result.Text)
End Using
$vbLabelText   $csharpLabel

C# PDF OCR

Същият подход може да се използва по подобен начин за извличане на текст от всеки PDF документ.

using IronOcr;

var Ocr = new IronTesseract();
// Set the OCR language to Bulgarian
Ocr.Language = OcrLanguage.Bulgarian;

using (var input = new OcrInput())
{
    // Add a PDF and provide a password if necessary
    input.AddPdf("example.pdf", "password");
    // You can also select specific PDF page numbers for OCR

    var Result = Ocr.Read(input);

    Console.WriteLine(Result.Text);
    Console.WriteLine($"{Result.Pages.Count()} Pages");
    // Outputs the page count of the PDF file
}
using IronOcr;

var Ocr = new IronTesseract();
// Set the OCR language to Bulgarian
Ocr.Language = OcrLanguage.Bulgarian;

using (var input = new OcrInput())
{
    // Add a PDF and provide a password if necessary
    input.AddPdf("example.pdf", "password");
    // You can also select specific PDF page numbers for OCR

    var Result = Ocr.Read(input);

    Console.WriteLine(Result.Text);
    Console.WriteLine($"{Result.Pages.Count()} Pages");
    // Outputs the page count of the PDF file
}
Imports IronOcr

Private Ocr = New IronTesseract()
' Set the OCR language to Bulgarian
Ocr.Language = OcrLanguage.Bulgarian

Using input = New OcrInput()
	' Add a PDF and provide a password if necessary
	input.AddPdf("example.pdf", "password")
	' You can also select specific PDF page numbers for OCR

	Dim Result = Ocr.Read(input)

	Console.WriteLine(Result.Text)
	Console.WriteLine($"{Result.Pages.Count()} Pages")
	' Outputs the page count of the PDF file
End Using
$vbLabelText   $csharpLabel

OCR за MultiPage TIFF

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

using IronOcr;

var Ocr = new IronTesseract();
// Set the OCR language to Bulgarian
Ocr.Language = OcrLanguage.Bulgarian;

using (var Input = new OcrInput())
{
    // Load a multi-frame TIFF file
    Input.AddMultiFrameTiff("multi-frame.tiff");

    // Perform OCR on the input TIFF
    var Result = Ocr.Read(Input);

    // Output the recognized text
    Console.WriteLine(Result.Text);
}
using IronOcr;

var Ocr = new IronTesseract();
// Set the OCR language to Bulgarian
Ocr.Language = OcrLanguage.Bulgarian;

using (var Input = new OcrInput())
{
    // Load a multi-frame TIFF file
    Input.AddMultiFrameTiff("multi-frame.tiff");

    // Perform OCR on the input TIFF
    var Result = Ocr.Read(Input);

    // Output the recognized text
    Console.WriteLine(Result.Text);
}
Imports IronOcr

Private Ocr = New IronTesseract()
' Set the OCR language to Bulgarian
Ocr.Language = OcrLanguage.Bulgarian

Using Input = New OcrInput()
	' Load a multi-frame TIFF file
	Input.AddMultiFrameTiff("multi-frame.tiff")

	' Perform OCR on the input TIFF
	Dim Result = Ocr.Read(Input)

	' Output the recognized text
	Console.WriteLine(Result.Text)
End Using
$vbLabelText   $csharpLabel

Баркодове и QR

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

using IronOcr;

var Ocr = new IronTesseract();
// Enable barcode reading
Ocr.Configuration.ReadBarCodes = true;

using (var input = new OcrInput())
{
    // Add image to OCR input
    input.AddImage("img/Barcode.png");

    // Perform OCR on input image
    var Result = Ocr.Read(input);

    // Iterate through scanned barcodes
    foreach (var Barcode in Result.Barcodes)
    {
        Console.WriteLine(Barcode.Value);
        // Additional barcode properties like type and location are also available
    }
}
using IronOcr;

var Ocr = new IronTesseract();
// Enable barcode reading
Ocr.Configuration.ReadBarCodes = true;

using (var input = new OcrInput())
{
    // Add image to OCR input
    input.AddImage("img/Barcode.png");

    // Perform OCR on input image
    var Result = Ocr.Read(input);

    // Iterate through scanned barcodes
    foreach (var Barcode in Result.Barcodes)
    {
        Console.WriteLine(Barcode.Value);
        // Additional barcode properties like type and location are also available
    }
}
Imports IronOcr

Private Ocr = New IronTesseract()
' Enable barcode reading
Ocr.Configuration.ReadBarCodes = True

Using input = New OcrInput()
	' Add image to OCR input
	input.AddImage("img/Barcode.png")

	' Perform OCR on input image
	Dim Result = Ocr.Read(input)

	' Iterate through scanned barcodes
	For Each Barcode In Result.Barcodes
		Console.WriteLine(Barcode.Value)
		' Additional barcode properties like type and location are also available
	Next Barcode
End Using
$vbLabelText   $csharpLabel

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

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

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

using IronOcr;
using System.Drawing; // Reference for Rectangle class

var Ocr = new IronTesseract();
// Set the OCR language to Bulgarian
Ocr.Language = OcrLanguage.Bulgarian;

using (var Input = new OcrInput())
{
    // Define specific content area to read
    var ContentArea = new Rectangle { X = 215, Y = 1250, Height = 280, Width = 1335 };
    // Dimensions are in pixels

    // Add the document with a specified region to perform OCR
    Input.Add("document.png", ContentArea);

    // Perform OCR on the defined region
    var Result = Ocr.Read(Input);

    // Output the text of the defined region
    Console.WriteLine(Result.Text);
}
using IronOcr;
using System.Drawing; // Reference for Rectangle class

var Ocr = new IronTesseract();
// Set the OCR language to Bulgarian
Ocr.Language = OcrLanguage.Bulgarian;

using (var Input = new OcrInput())
{
    // Define specific content area to read
    var ContentArea = new Rectangle { X = 215, Y = 1250, Height = 280, Width = 1335 };
    // Dimensions are in pixels

    // Add the document with a specified region to perform OCR
    Input.Add("document.png", ContentArea);

    // Perform OCR on the defined region
    var Result = Ocr.Read(Input);

    // Output the text of the defined region
    Console.WriteLine(Result.Text);
}
Imports IronOcr
Imports System.Drawing ' Reference for Rectangle class

Private Ocr = New IronTesseract()
' Set the OCR language to Bulgarian
Ocr.Language = OcrLanguage.Bulgarian

Using Input = New OcrInput()
	' Define specific content area to read
	Dim ContentArea = New Rectangle With {
		.X = 215,
		.Y = 1250,
		.Height = 280,
		.Width = 1335
	}
	' Dimensions are in pixels

	' Add the document with a specified region to perform OCR
	Input.Add("document.png", ContentArea)

	' Perform OCR on the defined region
	Dim Result = Ocr.Read(Input)

	' Output the text of the defined region
	Console.WriteLine(Result.Text)
End Using
$vbLabelText   $csharpLabel

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

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

using IronOcr;

var Ocr = new IronTesseract();
// Set the OCR language to Bulgarian
Ocr.Language = OcrLanguage.Bulgarian;

using (var Input = new OcrInput(@"img\Potter.LowQuality.tiff"))
{
    // Apply filters to fix the image
    Input.DeNoise(); // Removes digital noise and corrects bad scans
    Input.Deskew();  // Corrects rotation and perspective

    // Perform OCR on the enhanced input
    var Result = Ocr.Read(Input);

    // Output the corrected text
    Console.WriteLine(Result.Text);
}
using IronOcr;

var Ocr = new IronTesseract();
// Set the OCR language to Bulgarian
Ocr.Language = OcrLanguage.Bulgarian;

using (var Input = new OcrInput(@"img\Potter.LowQuality.tiff"))
{
    // Apply filters to fix the image
    Input.DeNoise(); // Removes digital noise and corrects bad scans
    Input.Deskew();  // Corrects rotation and perspective

    // Perform OCR on the enhanced input
    var Result = Ocr.Read(Input);

    // Output the corrected text
    Console.WriteLine(Result.Text);
}
Imports IronOcr

Private Ocr = New IronTesseract()
' Set the OCR language to Bulgarian
Ocr.Language = OcrLanguage.Bulgarian

Using Input = New OcrInput("img\Potter.LowQuality.tiff")
	' Apply filters to fix the image
	Input.DeNoise() ' Removes digital noise and corrects bad scans
	Input.Deskew() ' Corrects rotation and perspective

	' Perform OCR on the enhanced input
	Dim Result = Ocr.Read(Input)

	' Output the corrected text
	Console.WriteLine(Result.Text)
End Using
$vbLabelText   $csharpLabel

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

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

using IronOcr;

var Ocr = new IronTesseract();
// Set the OCR language to Bulgarian
Ocr.Language = OcrLanguage.Bulgarian;

using (var Input = new OcrInput())
{
    // Set the title for the PDF
    Input.Title = "Quarterly Report"; 

    // Add images to be included in the PDF
    Input.AddImage("image1.jpeg");
    Input.AddImage("image2.png");
    Input.AddImage("image3.gif");

    // Perform OCR on the input
    var Result = Ocr.Read(Input);

    // Save the OCR result as a searchable PDF
    Result.SaveAsSearchablePdf("searchable.pdf");
}
using IronOcr;

var Ocr = new IronTesseract();
// Set the OCR language to Bulgarian
Ocr.Language = OcrLanguage.Bulgarian;

using (var Input = new OcrInput())
{
    // Set the title for the PDF
    Input.Title = "Quarterly Report"; 

    // Add images to be included in the PDF
    Input.AddImage("image1.jpeg");
    Input.AddImage("image2.png");
    Input.AddImage("image3.gif");

    // Perform OCR on the input
    var Result = Ocr.Read(Input);

    // Save the OCR result as a searchable PDF
    Result.SaveAsSearchablePdf("searchable.pdf");
}
Imports IronOcr

Private Ocr = New IronTesseract()
' Set the OCR language to Bulgarian
Ocr.Language = OcrLanguage.Bulgarian

Using Input = New OcrInput()
	' Set the title for the PDF
	Input.Title = "Quarterly Report"

	' Add images to be included in the PDF
	Input.AddImage("image1.jpeg")
	Input.AddImage("image2.png")
	Input.AddImage("image3.gif")

	' Perform OCR on the input
	Dim Result = Ocr.Read(Input)

	' Save the OCR result as a searchable PDF
	Result.SaveAsSearchablePdf("searchable.pdf")
End Using
$vbLabelText   $csharpLabel

TIFF към PDF конвертиране с възможност за търсене

Конвертирайте TIFF документ (или произволна група файлове с изображения) директно в PDF с възможност за търсене, който може да бъде индексиран от интранет, уебсайт и google търсачки.

using IronOcr;

var Ocr = new IronTesseract();
// Set the OCR language to Bulgarian
Ocr.Language = OcrLanguage.Bulgarian;

using (var Input = new OcrInput())
{
    // Add a multi-page TIFF to be converted into a searchable PDF
    Input.AddMultiFrameTiff("example.tiff");

    // Perform OCR and save the result as a searchable PDF
    var Result = Ocr.Read(Input);
    Result.SaveAsSearchablePdf("searchable.pdf");
}
using IronOcr;

var Ocr = new IronTesseract();
// Set the OCR language to Bulgarian
Ocr.Language = OcrLanguage.Bulgarian;

using (var Input = new OcrInput())
{
    // Add a multi-page TIFF to be converted into a searchable PDF
    Input.AddMultiFrameTiff("example.tiff");

    // Perform OCR and save the result as a searchable PDF
    var Result = Ocr.Read(Input);
    Result.SaveAsSearchablePdf("searchable.pdf");
}
Imports IronOcr

Private Ocr = New IronTesseract()
' Set the OCR language to Bulgarian
Ocr.Language = OcrLanguage.Bulgarian

Using Input = New OcrInput()
	' Add a multi-page TIFF to be converted into a searchable PDF
	Input.AddMultiFrameTiff("example.tiff")

	' Perform OCR and save the result as a searchable PDF
	Dim Result = Ocr.Read(Input)
	Result.SaveAsSearchablePdf("searchable.pdf")
End Using
$vbLabelText   $csharpLabel

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

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

using IronOcr;

var Ocr = new IronTesseract();
// Set the OCR language to Bulgarian
Ocr.Language = OcrLanguage.Bulgarian;

using (var Input = new OcrInput())
{
    // Provide a title for the output HTML
    Input.Title = "Html Title";

    // Add images to be scanned
    Input.AddImage("image1.jpeg");

    // Perform OCR on the input
    var Result = Ocr.Read(Input);

    // Save the result as an XHTML file
    Result.SaveAsHocrFile("results.html");
}
using IronOcr;

var Ocr = new IronTesseract();
// Set the OCR language to Bulgarian
Ocr.Language = OcrLanguage.Bulgarian;

using (var Input = new OcrInput())
{
    // Provide a title for the output HTML
    Input.Title = "Html Title";

    // Add images to be scanned
    Input.AddImage("image1.jpeg");

    // Perform OCR on the input
    var Result = Ocr.Read(Input);

    // Save the result as an XHTML file
    Result.SaveAsHocrFile("results.html");
}
Imports IronOcr

Private Ocr = New IronTesseract()
' Set the OCR language to Bulgarian
Ocr.Language = OcrLanguage.Bulgarian

Using Input = New OcrInput()
	' Provide a title for the output HTML
	Input.Title = "Html Title"

	' Add images to be scanned
	Input.AddImage("image1.jpeg")

	' Perform OCR on the input
	Dim Result = Ocr.Read(Input)

	' Save the result as an XHTML file
	Result.SaveAsHocrFile("results.html")
End Using
$vbLabelText   $csharpLabel

OCR филтри за подобряване на изображението

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

Пример за код за подобряване на изображението

Прави изображенията с OCR по-високо качество, за да се получат по-добри и по-бързи резултати за OCR.

using IronOcr;

var Ocr = new IronTesseract();
// Set the OCR language to Bulgarian
Ocr.Language = OcrLanguage.Bulgarian;

using (var Input = new OcrInput(@"LowQuality.jpeg"))
{
    // Apply filters to improve image quality for OCR
    Input.DeNoise(); // Removes digital noise and corrects bad scans
    Input.Deskew();  // Corrects rotation and perspective

    // Perform OCR on the enhanced input
    var Result = Ocr.Read(Input);

    // Output the recognized text
    Console.WriteLine(Result.Text);
}
using IronOcr;

var Ocr = new IronTesseract();
// Set the OCR language to Bulgarian
Ocr.Language = OcrLanguage.Bulgarian;

using (var Input = new OcrInput(@"LowQuality.jpeg"))
{
    // Apply filters to improve image quality for OCR
    Input.DeNoise(); // Removes digital noise and corrects bad scans
    Input.Deskew();  // Corrects rotation and perspective

    // Perform OCR on the enhanced input
    var Result = Ocr.Read(Input);

    // Output the recognized text
    Console.WriteLine(Result.Text);
}
Imports IronOcr

Private Ocr = New IronTesseract()
' Set the OCR language to Bulgarian
Ocr.Language = OcrLanguage.Bulgarian

Using Input = New OcrInput("LowQuality.jpeg")
	' Apply filters to improve image quality for OCR
	Input.DeNoise() ' Removes digital noise and corrects bad scans
	Input.Deskew() ' Corrects rotation and perspective

	' Perform OCR on the enhanced input
	Dim Result = Ocr.Read(Input)

	' Output the recognized text
	Console.WriteLine(Result.Text)
End Using
$vbLabelText   $csharpLabel

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

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

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

CleanBackgroundNoise: Автоматично почиства дигиталния шум.

EnhanceContrast: Увеличава контраста на текста и фона за по-добра точност и производителност.

EnhanceResolution: Коригира ниска резолюция до 275 dpi за по-добра точност.

Language: Поддръжка на 22 международни езикови пакета за целенасочени OCR операции.

Strategy: Изберете между бърза и точно сложна OCR стратегия с AI модели.

ColorSpace: Избор между сивата скала или пълноцветен OCR за по-добри резултати.

DetectWhiteTextOnDarkBackgrounds: Позволява откриване на бял текст на черен фон.

InputImageType: Водещ OCR за пълен документ или фрагмент.

RotateAndStraighten: Обработка на завъртени и перспективни документи.

ReadBarcodes: Позволява разпознаване на баркодове и QR кодове.

ColorDepth: Определя цветната дълбочина за OCR библиотеката, по-високите консумпират повече време.

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

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

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

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

Използване на други OCR езици.

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

var Ocr = new IronTesseract();
// Set the OCR language to Arabic
Ocr.Language = OcrLanguage.Arabic;

using (var input = new OcrInput())
{
    // Add Arabic image to input
    input.AddImage("img/arabic.gif");
    // Optional: Add image filters if necessary
    // Despite the low quality of this input
    // IronTesseract can read it where conventional Tesseract might fail

    var Result = Ocr.Read(input);

    // Windows console may have problems printing Arabic characters.
    // Saving the result to disk instead.
    Result.SaveAsTextFile("arabic.txt");
}
// using IronOcr;
// PM> Install IronOcr.Languages.Arabic

var Ocr = new IronTesseract();
// Set the OCR language to Arabic
Ocr.Language = OcrLanguage.Arabic;

using (var input = new OcrInput())
{
    // Add Arabic image to input
    input.AddImage("img/arabic.gif");
    // Optional: Add image filters if necessary
    // Despite the low quality of this input
    // IronTesseract can read it where conventional Tesseract might fail

    var Result = Ocr.Read(input);

    // Windows console may have problems printing Arabic characters.
    // Saving the result to disk instead.
    Result.SaveAsTextFile("arabic.txt");
}
' using IronOcr;
' PM> Install IronOcr.Languages.Arabic

Dim Ocr = New IronTesseract()
' Set the OCR language to Arabic
Ocr.Language = OcrLanguage.Arabic

Using input = New OcrInput()
	' Add Arabic image to input
	input.AddImage("img/arabic.gif")
	' Optional: Add image filters if necessary
	' Despite the low quality of this input
	' IronTesseract can read it where conventional Tesseract might fail

	Dim Result = Ocr.Read(input)

	' Windows console may have problems printing Arabic characters.
	' Saving the result to disk instead.
	Result.SaveAsTextFile("arabic.txt")
End Using
$vbLabelText   $csharpLabel

Пример за многоезичен език

Възможно е също така OCR да се използва едновременно на няколко езика. Това наистина може да помогне за получаване на метаданни и URL адреси на английски език в Unicode документи.

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

var Ocr = new IronTesseract();
// Set primary OCR language to Chinese Simplified
Ocr.Language = OcrLanguage.ChineseSimplified;
// Add Bulgarian as a secondary language for OCR
Ocr.AddSecondaryLanguage(OcrLanguage.Bulgarian);

// You can add any number of languages

using (var input = new OcrInput())
{
    // Add multi-language PDF to input
    input.Add("multi-language.pdf");

    var Result = Ocr.Read(input);

    // Save the OCR result to a text file
    Result.SaveAsTextFile("results.txt");
}
// using IronOcr;
// PM> Install IronOcr.Languages.ChineseSimplified

var Ocr = new IronTesseract();
// Set primary OCR language to Chinese Simplified
Ocr.Language = OcrLanguage.ChineseSimplified;
// Add Bulgarian as a secondary language for OCR
Ocr.AddSecondaryLanguage(OcrLanguage.Bulgarian);

// You can add any number of languages

using (var input = new OcrInput())
{
    // Add multi-language PDF to input
    input.Add("multi-language.pdf");

    var Result = Ocr.Read(input);

    // Save the OCR result to a text file
    Result.SaveAsTextFile("results.txt");
}
' using IronOcr;
' PM> Install IronOcr.Languages.ChineseSimplified

Dim Ocr = New IronTesseract()
' Set primary OCR language to Chinese Simplified
Ocr.Language = OcrLanguage.ChineseSimplified
' Add Bulgarian as a secondary language for OCR
Ocr.AddSecondaryLanguage(OcrLanguage.Bulgarian)

' You can add any number of languages

Using input = New OcrInput()
	' Add multi-language PDF to input
	input.Add("multi-language.pdf")

	Dim Result = Ocr.Read(input)

	' Save the OCR result to a text file
	Result.SaveAsTextFile("results.txt")
End Using
$vbLabelText   $csharpLabel

Подробни обекти с резултати от OCR

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

using IronOcr;
using System.Drawing; // Add reference for assembly

var Ocr = new IronTesseract();
// Set the OCR language to Bulgarian
Ocr.Language = OcrLanguage.Bulgarian;
Ocr.Configuration.EngineMode = TesseractEngineMode.TesseractAndLstm;
// Enable barcode reading
Ocr.Configuration.ReadBarCodes = true;

using (var Input = new OcrInput(@"images\sample.tiff"))
{
    // Perform OCR on input TIFF file
    OcrResult Result = Ocr.Read(Input);

    var Pages = Result.Pages;
    var Words = Pages[0].Words;
    var Barcodes = Result.Barcodes;
    // Explore properties like:
    // - Pages, Blocks, Paragraphs, Lines, Words, Characters
    // - Export Images, Font Coordinates, Statistics
}
using IronOcr;
using System.Drawing; // Add reference for assembly

var Ocr = new IronTesseract();
// Set the OCR language to Bulgarian
Ocr.Language = OcrLanguage.Bulgarian;
Ocr.Configuration.EngineMode = TesseractEngineMode.TesseractAndLstm;
// Enable barcode reading
Ocr.Configuration.ReadBarCodes = true;

using (var Input = new OcrInput(@"images\sample.tiff"))
{
    // Perform OCR on input TIFF file
    OcrResult Result = Ocr.Read(Input);

    var Pages = Result.Pages;
    var Words = Pages[0].Words;
    var Barcodes = Result.Barcodes;
    // Explore properties like:
    // - Pages, Blocks, Paragraphs, Lines, Words, Characters
    // - Export Images, Font Coordinates, Statistics
}
Imports IronOcr
Imports System.Drawing ' Add reference for assembly

Private Ocr = New IronTesseract()
' Set the OCR language to Bulgarian
Ocr.Language = OcrLanguage.Bulgarian
Ocr.Configuration.EngineMode = TesseractEngineMode.TesseractAndLstm
' Enable barcode reading
Ocr.Configuration.ReadBarCodes = True

Using Input = New OcrInput("images\sample.tiff")
	' Perform OCR on input TIFF file
	Dim Result As OcrResult = Ocr.Read(Input)

	Dim Pages = Result.Pages
	Dim Words = Pages(0).Words
	Dim Barcodes = Result.Barcodes
	' Explore properties like:
	' - Pages, Blocks, Paragraphs, Lines, Words, Characters
	' - Export Images, Font Coordinates, Statistics
End Using
$vbLabelText   $csharpLabel

производителност

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

Скоростта е бърза: IronOcr.2020+ е до 10 пъти по-бърз и прави над 250% по-малко грешки от предишните компилации.

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

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

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