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 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
Dlaczego warto wybrać IronOCR?
IronOCR 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 IronOCR 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
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
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
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
Kody kreskowe i QR
Unikalną cechą IronOCR 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
OCR w określonych obszarach obrazów
Wszystkie metody skanowania i czytania IronOCR 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
OCR dla skanów o niskiej jakości
Klasa IronOCR 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
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
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
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
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
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 IronOCR 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 IronOCR 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 IronOCR 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 IronOCR 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 IronOCR 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 IronOCR 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
IronOCR 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
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
Szczegółowe obiekty wyników OCR
IronOCR 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
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ć IronOCR i mogą pokazać niuanse, jak najlepiej wykorzystać tę bibliotekę.
Dostępne jest również pełne odniesienie do obiektów dla programistów .NET .