Polski OCR w C#i .Net

Inne wersje tego dokumentu:

IronOCR to komponent oprogramowania C#umożliwiający programistom .NET odczytywanie tekstu z obrazów i dokumentów PDF w 126 językach, w tym po polsku.

Jest to zaawansowany fork Tesseract, stworzony wyłącznie dla programistów .NET i regularnie przewyższa inne silniki Tesseract zarówno pod względem szybkości, jak i dokładności.

Zawartość IronOcr.Languages.Polish

Ten pakiet zawiera 43 języki OCR dla .NET:

  • Polskie
  • PolishBest
  • Szybko

Ściągnij

Pakiet języka polskiego [język polski]
* Download as Zamek błyskawiczny
* Install with as
https://www.nuget.org/packages/IronOcr.Languages.Polish/'> NuGet

Instalacja

Pierwszą rzeczą, jaką musimy zrobić, jest zainstalowanie naszego polskiego pakietu OCR w Twoim projekcie .NET.

PM> Install-Package IronOCR.Languages.Polish

Przykład kodu

Ten przykład kodu C#odczytuje polski tekst z dokumentu Image lub PDF.

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

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

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

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

Dlaczego warto wybrać IronOCR?

Iron OCR to łatwa w instalacji, kompletna i dobrze udokumentowana biblioteka oprogramowania .NET.

Wybierz IronOCR, aby osiągnąć 99,8% + dokładność OCR bez korzystania z zewnętrznych usług internetowych, bieżących opłat lub wysyłania poufnych dokumentów przez Internet.

Dlaczego programiści C#wybierają IronOCR zamiast Vanilla Tesseract:

  • Zainstaluj jako pojedynczą bibliotekę DLL lub Nuget
  • Zawiera silniki Tesseract 5, 4 i 3 po wyjęciu z pudełka.
  • Dokładność 99,8% znacznie przewyższa zwykły Tesseract.
  • Niesamowita prędkość i wielowątkowość
  • Kompatybilny z MVC, WebApp, Desktop, Console & Server Application
  • Brak kodu Exes lub C ++ do pracy
  • Pełna obsługa PDF OCR
  • Aby wykonać OCR prawie każdy plik obrazu lub PDF
  • Pełna obsługa .Net Core, Standard i FrameWork
  • Wdrażaj w systemach Windows, Mac, Linux, Azure, Docker, Lambda, AWS
  • Czytaj kody kreskowe i kody QR
  • Eksportuj OCR jako XHTML
  • Eksportuj OCR do przeszukiwalnych dokumentów PDF
  • Obsługa wielowątkowości
  • 126 języków międzynarodowych zarządzanych za pomocą plików Nuget lub OcrData
  • Wyodrębnij obrazy, współrzędne, statystyki i czcionki. Nie tylko tekst.
  • Może być używany do redystrybucji Tesseract OCR w aplikacjach komercyjnych i zastrzeżonych.

Technologia Iron OCR wyróżnia się podczas pracy z rzeczywistymi obrazami i niedoskonałymi dokumentami, takimi jak zdjęcia lub skany o niskiej rozdzielczości, które mogą zawierać szum cyfrowy lub niedoskonałości.

Inne bezpłatne biblioteki OCR dla platformy .NET, takie jak inne interfejsy API tesseract .net i usługi internetowe, nie działają tak dobrze w tych rzeczywistych przypadkach użycia.

OCR z Tesseract 5 - Rozpocznij kodowanie w C #

Poniższy przykład kodu pokazuje, jak łatwo jest odczytać tekst z obrazu przy użyciu języka C#lub 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#

Konfigurowalny Hello World

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

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Polish;
using (var Input = new OcrInput()){
Input.AddImage("images/sample.jpeg")
//... możesz dodać dowolną liczbę zdjęć
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
// PM> Install-Package IronOCR.Languages.Polish
using IronOcr;

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Polish;
using (var Input = new OcrInput()){
Input.AddImage("images/sample.jpeg")
//... możesz dodać dowolną liczbę zdjęć
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
' PM> Install-Package IronOCR.Languages.Polish
Imports IronOcr

Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Polish
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

To samo podejście można podobnie zastosować do wyodrębnienia tekstu z dowolnego dokumentu PDF.

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Polish;
using (var input = new OcrInput())
{
input.AddPdf("example.pdf", "password");
// Możemy również wybrać określone numery stron PDF do OCR

var Result = Ocr.Read(input);

Console.WriteLine(Result.Text);
Console.WriteLine($"{Result.Pages.Count()} Pages");
// 1 strona na każdą stronę pliku PDF
}
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Polish;
using (var input = new OcrInput())
{
input.AddPdf("example.pdf", "password");
// Możemy również wybrać określone numery stron PDF do OCR

var Result = Ocr.Read(input);

Console.WriteLine(Result.Text);
Console.WriteLine($"{Result.Pages.Count()} Pages");
// 1 strona na każdą stronę pliku PDF
}
Dim Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Polish
Using input = New OcrInput()
input.AddPdf("example.pdf", "password")
' Możemy również wybrać określone numery stron PDF do OCR

Dim Result = Ocr.Read(input)

Console.WriteLine(Result.Text)
Console.WriteLine($"{Result.Pages.Count()} Pages")
' 1 strona na każdą stronę pliku PDF
End Using
VB   C#

OCR dla wielostronicowych plików TIFF

OCR Odczytywanie formatu pliku TIFF, w tym dokumentów wielostronicowych. TIFF można również konwertować bezpośrednio do pliku PDF z przeszukiwalnym tekstem.

using IronOcr;

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

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

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

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

Kody kreskowe i QR

Unikalną cechą Iron OCR jest to, że może odczytywać kody kreskowe i kody QR z dokumentów podczas skanowania tekstu. Wystąpienia klasy OcrResult.OcrBarcode zapewniają deweloperowi szczegółowe informacje o każdym zeskanowanym OcrResult.OcrBarcode kreskowym.

// 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);
// właściwości typu i lokalizacji również zostały ujawnione
}
}
// 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);
// właściwości typu i lokalizacji również zostały ujawnione
}
}
' 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)
' właściwości typu i lokalizacji również zostały ujawnione
Next Barcode
End Using
VB   C#

OCR w określonych obszarach obrazów

Wszystkie metody skanowania i czytania Iron OCR zapewniają możliwość dokładnego określenia, z której części strony lub stron chcemy czytać tekst. Jest to bardzo przydatne, gdy patrzymy na standardowe formularze i może zaoszczędzić dużo czasu i poprawić wydajność.

Aby użyć obszarów upraw, będziemy musieli dodać odniesienie systemowe do System.Drawing , abyśmy mogli używać obiektu System.Drawing.Rectangle .

using IronOcr;

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

using (var Input = new OcrInput())
{
var ContentArea = new System.Drawing.Rectangle() { X = 215, Y = 1250, Height = 280, Width = 1335 };
// Wymiary podano w pikselach

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

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

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

using (var Input = new OcrInput())
{
var ContentArea = new System.Drawing.Rectangle() { X = 215, Y = 1250, Height = 280, Width = 1335 };
// Wymiary podano w pikselach

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

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

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

Using Input = New OcrInput()
Dim ContentArea = New System.Drawing.Rectangle() With {
	.X = 215,
	.Y = 1250,
	.Height = 280,
	.Width = 1335
}
' Wymiary podano w pikselach

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

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

OCR dla skanów o niskiej jakości

Klasa Iron OCR OcrInput może naprawić skany, których normalny Tesseract nie może odczytać.

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

using (var Input = new OcrInput(@"img\Potter.LowQuality.tiff"))
{
Input.DeNoise(); // naprawia szum cyfrowy i słabe skanowanie
Input.Deskew(); // naprawia obrót i perspektywę
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
using IronOcr;
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Polish;

using (var Input = new OcrInput(@"img\Potter.LowQuality.tiff"))
{
Input.DeNoise(); // naprawia szum cyfrowy i słabe skanowanie
Input.Deskew(); // naprawia obrót i perspektywę
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
Imports IronOcr
Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Polish

Using Input = New OcrInput("img\Potter.LowQuality.tiff")
Input.DeNoise() ' naprawia szum cyfrowy i słabe skanowanie
Input.Deskew() ' naprawia obrót i perspektywę
Dim Result = Ocr.Read(Input)
Console.WriteLine(Result.Text)
End Using
VB   C#

Eksportuj wyniki OCR jako przeszukiwalny plik PDF

Obraz do pliku PDF z możliwością kopiowania ciągów tekstowych. Może być indeksowany przez wyszukiwarki i bazy danych.

using IronOcr;

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

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

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

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 do konwersji PDF z możliwością wyszukiwania

Konwertuj dokument TIFF (lub dowolną grupę plików graficznych) bezpośrednio do przeszukiwalnego pliku PDF, który może być indeksowany przez intranet, witrynę internetową i wyszukiwarki Google.

using IronOcr;

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

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

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

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

Eksportuj wyniki OCR jako HTML

Konwersja obrazu OCR do XHTML.

using IronOcr;

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Polish;
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.Polish;
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.Polish
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#

Filtry ulepszające obraz OCR

IronOCR zapewnia unikalne filtry dla obiektów OcrInput aby poprawić wydajność OCR.

Przykład kodu ulepszenia obrazu

Sprawia, że obrazy wejściowe OCR są wyższej jakości, aby uzyskiwać lepsze i szybsze wyniki OCR.

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

using (var Input = new OcrInput(@"LowQuality.jpeg"))
{
Input.DeNoise(); // naprawia szum cyfrowy i słabe skanowanie
Input.Deskew(); // naprawia obrót i perspektywę
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
using IronOcr;
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Polish;

using (var Input = new OcrInput(@"LowQuality.jpeg"))
{
Input.DeNoise(); // naprawia szum cyfrowy i słabe skanowanie
Input.Deskew(); // naprawia obrót i perspektywę
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
Imports IronOcr
Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Polish

Using Input = New OcrInput("LowQuality.jpeg")
Input.DeNoise() ' naprawia szum cyfrowy i słabe skanowanie
Input.Deskew() ' naprawia obrót i perspektywę
Dim Result = Ocr.Read(Input)
Console.WriteLine(Result.Text)
End Using
VB   C#

Lista filtrów obrazu OCR

Filtry wejściowe zwiększające wydajność OCR, które są wbudowane w IronOCR, obejmują:

  • OcrInput.Rotate (podwójne stopnie) - obraca obrazy o określoną liczbę stopni w prawo. W przypadku ruchu w kierunku przeciwnym do ruchu wskazówek zegara użyj liczb ujemnych.
  • OcrInput.Binarize () - ten filtr obrazu zamienia każdy piksel na czarny lub biały bez środka. Może poprawić wydajność OCR w przypadkach bardzo niskiego kontrastu tekstu z tłem.
  • OcrInput.ToGrayScale () - ten filtr obrazu zamienia każdy piksel w cień skali szarości. Jest mało prawdopodobne, aby poprawić dokładność OCR, ale może poprawić szybkość
  • OcrInput.Contrast () - automatycznie zwiększa kontrast. Ten filtr często poprawia szybkość i dokładność OCR w skanach o niskim kontraście.
  • OcrInput.DeNoise () - usuwa szum cyfrowy. Tego filtra należy używać tylko wtedy, gdy spodziewany jest szum.
  • OcrInput.Invert () - Odwraca każdy kolor. Np. Biały staje się czarny: czarny staje się biały.
  • OcrInput.Dilate () - zaawansowana morfologia. Dylatacja dodaje piksele do granic obiektów na obrazie. Naprzeciwko Erode
  • OcrInput.Erode () - zaawansowana morfologia. Erozja usuwa piksele na granicach obiektu naprzeciwko Dilate
  • OcrInput.Deskew () - obraca obraz tak, aby znajdował się we właściwej pozycji w górę i ortogonalnie. Jest to bardzo przydatne w przypadku OCR, ponieważ tolerancja Tesseract dla przekrzywionych skanów może wynosić zaledwie 5 stopni.
  • OcrInput.DeepCleanBackgroundNoise () - intensywne usuwanie szumów tła. Używaj tego filtru tylko w przypadku, gdy znane są ekstremalne szumy tła dokumentu, ponieważ ten filtr może również zmniejszyć dokładność OCR czystych dokumentów i jest bardzo kosztowny dla procesora.
  • OcrInput.EnhanceResolution - poprawia rozdzielczość obrazów o niskiej jakości. Ten filtr nie jest często potrzebny, ponieważ OcrInput.MinimumDPI i OcrInput.TargetDPI automatycznie wychwytują i rozwiązują dane wejściowe o niskiej rozdzielczości.

CleanBackgroundNoise. Jest to ustawienie, które jest nieco czasochłonne; jednakże pozwala bibliotece na automatyczne usuwanie szumów cyfrowych, zgnieceń papieru i innych niedoskonałości w obrazie cyfrowym, które w przeciwnym razie uniemożliwiłyby odczytanie go przez inne biblioteki OCR.

EnhanceContrast to ustawienie, które powoduje, że Iron OCR automatycznie zwiększa kontrast tekstu na tle obrazu, zwiększając dokładność OCR i ogólnie zwiększając wydajność i szybkość OCR.

EnhanceResolution to ustawienie, które automatycznie wykrywa obrazy o niskiej rozdzielczości (poniżej 275 dpi) i automatycznie przeskalowuje obraz, a następnie wyostrza cały tekst, aby mógł być doskonale odczytany przez bibliotekę OCR. Chociaż ta operacja jest sama w sobie czasochłonna, zazwyczaj skraca całkowity czas operacji OCR na obrazie.

Language Iron OCR obsługuje 22 międzynarodowe pakiety językowe, a ustawienie języka można wykorzystać do wybrania jednego lub więcej języków, które mają być zastosowane do operacji OCR.

Strategy Iron OCR obsługuje dwie strategie. Możemy zdecydować się na szybkie i mniej dokładne skanowanie dokumentu lub zastosować zaawansowaną strategię, która wykorzystuje niektóre modele sztucznej inteligencji, aby automatycznie poprawić dokładność tekstu OCR, patrząc na statystyczne relacje między słowami w zdaniu .

ColorSpace to ustawienie, dzięki któremu możemy wybrać OCR w skali szarości lub w kolorze. Ogólnie rzecz biorąc, skala szarości jest najlepszą opcją. Jednak czasami, gdy istnieją teksty lub tła o podobnym odcieniu, ale bardzo różnym kolorze, pełnokolorowa przestrzeń kolorów zapewni lepsze wyniki.

DetectWhiteTextOnDarkBackgrounds. Ogólnie rzecz biorąc, wszystkie biblioteki OCR spodziewają się zobaczyć czarny tekst na białym tle. To ustawienie umożliwia Iron OCR automatyczne wykrywanie negatywów lub ciemnych stron z białym tekstem i ich odczytywanie.

InputImageType. To ustawienie umożliwia deweloperowi wskazanie biblioteki OCR, czy przegląda cały dokument, czy fragment, taki jak zrzut ekranu.

RotateAndStraighten to zaawansowane ustawienie, które pozwala Iron OCR na unikalną możliwość czytania dokumentów, które są nie tylko obrócone, ale mogą zawierać perspektywę, na przykład zdjęcia dokumentów tekstowych.

ReadBarcodes to przydatna funkcja, która umożliwia Iron OCR automatyczne odczytywanie kodów kreskowych i kodów QR na stronach, ponieważ odczytuje również tekst, bez dodawania dużego dodatkowego obciążenia czasowego.

Głębia koloru. To ustawienie określa, ile bitów na piksel użyje biblioteka OCR do określenia głębi koloru. Większa głębia kolorów może poprawić jakość OCR, ale także wydłuży czas wymagany do zakończenia operacji OCR.

126 pakietów językowych

Iron OCR obsługuje 126 języków międzynarodowych za pośrednictwem pakietów językowych, które są dystrybuowane jako biblioteki DLL, które można pobrać z tej witryny internetowej lub z Menedżera pakietów NuGet .

Języki obejmują niemiecki, francuski, angielski, chiński, japoński i wiele innych. Istnieją specjalistyczne pakiety językowe dla paszportów MRZ, kontroli MICR, danych finansowych, tablic rejestracyjnych i wielu innych. Możesz także użyć dowolnego pliku tesseract „.traineddata” - w tym utworzonego samodzielnie.

Przykład języka

Korzystanie z innych języków 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");
// W razie potrzeby dodaj filtry obrazu
// W tym przypadku nawet pomyślane wejście jest bardzo niskiej jakości
// IronTesseract potrafi odczytać to, czego nie potrafi konwencjonalny Tesseract.

var Result = Ocr.Read(input);

// Konsola nie może łatwo drukować arabskiego w systemie Windows.
// Zamiast tego zapiszmy na dysku.
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");
// W razie potrzeby dodaj filtry obrazu
// W tym przypadku nawet pomyślane wejście jest bardzo niskiej jakości
// IronTesseract potrafi odczytać to, czego nie potrafi konwencjonalny Tesseract.

var Result = Ocr.Read(input);

// Konsola nie może łatwo drukować arabskiego w systemie Windows.
// Zamiast tego zapiszmy na dysku.
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")
' W razie potrzeby dodaj filtry obrazu
' W tym przypadku nawet pomyślane wejście jest bardzo niskiej jakości
' IronTesseract potrafi odczytać to, czego nie potrafi konwencjonalny Tesseract.

Dim Result = Ocr.Read(input)

' Konsola nie może łatwo drukować arabskiego w systemie Windows.
' Zamiast tego zapiszmy na dysku.
Result.SaveAsTextFile("arabic.txt")
End Using
VB   C#

Przykład wielu języków

Możliwe jest również OCR przy użyciu wielu języków w tym samym czasie. Może to naprawdę pomóc w uzyskaniu metadanych i adresów URL w języku angielskim w dokumentach Unicode.

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

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

// Możemy dodać dowolną liczbę języków

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

// Możemy dodać dowolną liczbę języków

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

' Możemy dodać dowolną liczbę języków

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

Szczegółowe obiekty wyników OCR

Iron OCR zwraca obiekt wynikowy OCR dla każdej operacji OCR. Ogólnie rzecz biorąc, programiści używają właściwości text tego obiektu tylko do skanowania tekstu z obrazu. Jednak DOM wyników OCR jest znacznie bardziej zaawansowany.

using IronOcr;
using System.Drawing; //Dodaj odniesienie do zespołu

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Polish;
Ocr.Configuration.EngineMode = TesseractEngineMode.TesseractAndLstm;
Ocr.Configuration.ReadBarCodes = true; //!Ważny

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;
// Przeglądaj tutaj, aby znaleźć ogromne, szczegółowe API:
// - Strony, bloki, parafie, wiersze, słowa, znaki
// - Eksport obrazu, współrzędne czcionek, dane statystyczne
}
using IronOcr;
using System.Drawing; //Dodaj odniesienie do zespołu

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Polish;
Ocr.Configuration.EngineMode = TesseractEngineMode.TesseractAndLstm;
Ocr.Configuration.ReadBarCodes = true; //!Ważny

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;
// Przeglądaj tutaj, aby znaleźć ogromne, szczegółowe API:
// - Strony, bloki, parafie, wiersze, słowa, znaki
// - Eksport obrazu, współrzędne czcionek, dane statystyczne
}
Imports IronOcr
Imports System.Drawing 'Dodaj odniesienie do zespołu

Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Polish
Ocr.Configuration.EngineMode = TesseractEngineMode.TesseractAndLstm
Ocr.Configuration.ReadBarCodes = True '!Ważny

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
' Przeglądaj tutaj, aby znaleźć ogromne, szczegółowe API:
' - Strony, bloki, parafie, wiersze, słowa, znaki
' - Eksport obrazu, współrzędne czcionek, dane statystyczne
End Using
VB   C#

Wydajność

IronOCR działa od razu po wyjęciu z pudełka, bez konieczności dostrajania wydajności lub znacznej modyfikacji obrazów wejściowych.

Szybkość jest niesamowita: IronOcr.2020 + jest do 10 razy szybszy i generuje ponad 250% mniej błędów niż poprzednie wersje.

Ucz się więcej

Aby dowiedzieć się więcej o OCR w C #, VB, F # lub jakimkolwiek innym języku .NET, przeczytaj nasze samouczki społeczności , które zawierają rzeczywiste przykłady tego, jak można wykorzystać Iron OCR i mogą pokazać niuanse, jak najlepiej wykorzystać tę bibliotekę.

Dostępne jest również pełne odniesienie do obiektów dla programistów .NET .