Slovenski OCR v C# in .NET
Druge različice tega dokumenta:
IronOCR je programska komponenta C#, ki omogoča .NET koderjem branje besedila s slik in dokumentov PDF v 126 jezikih, vključno s slovenščino.
Je napredna vilica Tesseract, izdelana izključno za razvijalce .NET in redno presega ostale Tesseractove motorje tako po hitrosti kot po natančnosti.
Vsebina IronOcr.Languages.Slovene
Ta paket vsebuje 46 jezikov OCR za .NET:
- Slovenščina
- SlovenianBest
- SlovenianFast
Prenesi
Slovenski jezikovni paket [slovenski jezik]
Namestitev
Najprej moramo namestiti naš slovenski paket OCR v vaš projekt .NET.
Install-Package IronOCR.Languages.Slovene
Primer kode
Ta primer kode v C# bere slovensko besedilo iz dokumenta Image ali PDF.
// Install-Package IronOcr.Languages.Slovene
using IronOcr;
var Ocr = new IronTesseract();
// Setting the OCR language to Slovene
Ocr.Language = OcrLanguage.Slovene;
// Load image file for OCR
using (var Input = new OcrInput(@"images\Slovene.png"))
{
// Perform OCR and get the result
var Result = Ocr.Read(Input);
// Extract text from the OCR result
var AllText = Result.Text;
}
// Install-Package IronOcr.Languages.Slovene
using IronOcr;
var Ocr = new IronTesseract();
// Setting the OCR language to Slovene
Ocr.Language = OcrLanguage.Slovene;
// Load image file for OCR
using (var Input = new OcrInput(@"images\Slovene.png"))
{
// Perform OCR and get the result
var Result = Ocr.Read(Input);
// Extract text from the OCR result
var AllText = Result.Text;
}
' Install-Package IronOcr.Languages.Slovene
Imports IronOcr
Private Ocr = New IronTesseract()
' Setting the OCR language to Slovene
Ocr.Language = OcrLanguage.Slovene
' Load image file for OCR
Using Input = New OcrInput("images\Slovene.png")
' Perform OCR and get the result
Dim Result = Ocr.Read(Input)
' Extract text from the OCR result
Dim AllText = Result.Text
End Using
Zakaj izbrati IronOCR?
IronOCR je enostavna za namestitev, popolna in dobro dokumentirana knjižnica programske opreme .NET.
Izberite IronOCR, da dosežete 99,8% + natančnost OCR brez uporabe kakršnih koli zunanjih spletnih storitev, stalnih provizij ali pošiljanja zaupnih dokumentov prek interneta.
Zakaj razvijalci C# izberejo IronOCR pred Vanilla Tesseract:
- Namestite kot en DLL ali NuGet
- Vključuje motorje Tesseract 5, 4 in 3 iz škatle.
- Natančnost 99,8% bistveno presega običajni Tesseract.
- Blazing Speed in MultiThreading
- Združljiv z MVC, WebApp, namizjem, konzolo in strežniškimi aplikacijami
- Ni Exes ali kode C++ za delo
- Popolna podpora za PDF OCR
- Za izvedbo OCR skoraj katere koli slikovne datoteke ali PDF-ja
- Popolna podpora .NET Core, Standard in FrameWork
- Uvedba v sistemih Windows, Mac, Linux, Azure, Docker, Lambda, AWS
- Preberite črtne kode in QR kode
- Izvozi OCR v XHTML
- Izvozite OCR v iskalne dokumente PDF
- Podpora za večnitnost
- 126 mednarodnih jezikov, ki se upravljajo prek datotek NuGet ali OcrData
- Izvlecite slike, koordinate, statistiko in pisave. Ne samo besedilo.
- Lahko se uporablja za distribucijo Tesseract OCR znotraj komercialnih in lastniških aplikacij.
OCR z železom zasije pri delu s slikami iz resničnega sveta in nepopolnimi dokumenti, kot so fotografije, ali skeni z nizko ločljivostjo, ki lahko povzročijo digitalni šum ali pomanjkljivosti.
Druge brezplačne knjižnice OCR za platformo .NET, kot so drugi API-ji .net tesseract in spletne storitve, v teh resničnih primerih uporabe ne delujejo tako dobro.
OCR s Tesseract 5 - Začnite kodirati v jeziku C#
Spodnji vzorec kode prikazuje, kako enostavno je brati besedilo s slike s pomočjo C# ali VB .NET.
OneLiner
// One-liner to read text from image
string Text = new IronTesseract().Read(@"img\Screenshot.png").Text;
// One-liner to read text from image
string Text = new IronTesseract().Read(@"img\Screenshot.png").Text;
' One-liner to read text from image
Dim Text As String = (New IronTesseract()).Read("img\Screenshot.png").Text
Nastavljiv Hello World
// Install-Package IronOCR.Languages.Slovene
using IronOcr;
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Slovene;
// Create OCR input from image files
using (var Input = new OcrInput())
{
Input.AddImage("images/sample.jpeg");
// Add any number of images
// Perform OCR and get the result
var Result = Ocr.Read(Input);
// Print the OCR result
Console.WriteLine(Result.Text);
}
// Install-Package IronOCR.Languages.Slovene
using IronOcr;
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Slovene;
// Create OCR input from image files
using (var Input = new OcrInput())
{
Input.AddImage("images/sample.jpeg");
// Add any number of images
// Perform OCR and get the result
var Result = Ocr.Read(Input);
// Print the OCR result
Console.WriteLine(Result.Text);
}
' Install-Package IronOCR.Languages.Slovene
Imports IronOcr
Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Slovene
' Create OCR input from image files
Using Input = New OcrInput()
Input.AddImage("images/sample.jpeg")
' Add any number of images
' Perform OCR and get the result
Dim Result = Ocr.Read(Input)
' Print the OCR result
Console.WriteLine(Result.Text)
End Using
C# PDF OCR
Enak pristop lahko podobno uporabimo za pridobivanje besedila iz katerega koli dokumenta PDF.
using IronOcr;
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Slovene;
// Load PDF document for OCR
using (var input = new OcrInput())
{
input.AddPdf("example.pdf", "password");
// Za OCR lahko izberemo tudi določena številka strani PDF
// Perform OCR and get the result
var Result = Ocr.Read(input);
// Display the text and page count
Console.WriteLine(Result.Text);
Console.WriteLine($"{Result.Pages.Count} Pages");
// 1 stran za vsako stran PDF-ja
}
using IronOcr;
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Slovene;
// Load PDF document for OCR
using (var input = new OcrInput())
{
input.AddPdf("example.pdf", "password");
// Za OCR lahko izberemo tudi določena številka strani PDF
// Perform OCR and get the result
var Result = Ocr.Read(input);
// Display the text and page count
Console.WriteLine(Result.Text);
Console.WriteLine($"{Result.Pages.Count} Pages");
// 1 stran za vsako stran PDF-ja
}
Imports IronOcr
Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Slovene
' Load PDF document for OCR
Using input = New OcrInput()
input.AddPdf("example.pdf", "password")
' Za OCR lahko izberemo tudi določena številka strani PDF
' Perform OCR and get the result
Dim Result = Ocr.Read(input)
' Display the text and page count
Console.WriteLine(Result.Text)
Console.WriteLine($"{Result.Pages.Count} Pages")
' 1 stran za vsako stran PDF-ja
End Using
OCR za večstranske TIFF
OCR branje oblike datoteke TIFF, vključno z dokumenti z več strani. TIFF je mogoče pretvoriti tudi neposredno v datoteko PDF z besedilom, ki ga je mogoče iskati.
using IronOcr;
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Slovene;
// Load multi-frame TIFF for OCR
using (var Input = new OcrInput())
{
input.AddMultiFrameTiff("multi-frame.tiff");
// Perform OCR and get the result
var Result = Ocr.Read(Input);
// Display the result text
Console.WriteLine(Result.Text);
}
using IronOcr;
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Slovene;
// Load multi-frame TIFF for OCR
using (var Input = new OcrInput())
{
input.AddMultiFrameTiff("multi-frame.tiff");
// Perform OCR and get the result
var Result = Ocr.Read(Input);
// Display the result text
Console.WriteLine(Result.Text);
}
Imports IronOcr
Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Slovene
' Load multi-frame TIFF for OCR
Using Input = New OcrInput()
input.AddMultiFrameTiff("multi-frame.tiff")
' Perform OCR and get the result
Dim Result = Ocr.Read(Input)
' Display the result text
Console.WriteLine(Result.Text)
End Using
Črtne kode in QR
Edinstvena značilnost IronOCR je, da lahko bere črtne kode in QR kode iz dokumentov med skeniranjem besedila. OcrResult.OcrBarcode
razreda dajejo razvijalcu podrobne informacije o vsaki optično prebrani črtni kodi.
using IronOcr;
var Ocr = new IronTesseract();
Ocr.Configuration.ReadBarCodes = true;
// Load image for reading barcodes
using (var input = new OcrInput())
{
input.AddImage("img/Barcode.png");
// Perform OCR
var Result = Ocr.Read(input);
// Iterate over barcodes and print their values
foreach (var Barcode in Result.Barcodes)
{
Console.WriteLine(Barcode.Value);
// izpostavljene tudi lastnosti tipa in lokacije
}
}
using IronOcr;
var Ocr = new IronTesseract();
Ocr.Configuration.ReadBarCodes = true;
// Load image for reading barcodes
using (var input = new OcrInput())
{
input.AddImage("img/Barcode.png");
// Perform OCR
var Result = Ocr.Read(input);
// Iterate over barcodes and print their values
foreach (var Barcode in Result.Barcodes)
{
Console.WriteLine(Barcode.Value);
// izpostavljene tudi lastnosti tipa in lokacije
}
}
Imports IronOcr
Private Ocr = New IronTesseract()
Ocr.Configuration.ReadBarCodes = True
' Load image for reading barcodes
Using input = New OcrInput()
input.AddImage("img/Barcode.png")
' Perform OCR
Dim Result = Ocr.Read(input)
' Iterate over barcodes and print their values
For Each Barcode In Result.Barcodes
Console.WriteLine(Barcode.Value)
' izpostavljene tudi lastnosti tipa in lokacije
Next Barcode
End Using
OCR na določenih področjih slik
Vse metode optičnega branja in branja IronOCR omogočajo natančno določanje, s katerega dela strani ali strani želimo brati besedilo. To je zelo koristno, če gledamo standardizirane obrazce in lahko prihranimo ogromno časa in izboljšamo učinkovitost.
Če želimo uporabiti območja obrezovanja, bomo morali dodati sistemsko referenco na System.Drawing
, da bomo lahko uporabili objekt System.Drawing.Rectangle
.
using IronOcr;
using System.Drawing; // Needed for Rectangle
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Slovene;
// Load image and specify content area for OCR
using (var Input = new OcrInput())
{
var ContentArea = new Rectangle { X = 215, Y = 1250, Height = 280, Width = 1335 };
// Dimenzije so v px
Input.Add("document.png", ContentArea);
// Perform OCR and get the result
var Result = Ocr.Read(Input);
// Display the result text
Console.WriteLine(Result.Text);
}
using IronOcr;
using System.Drawing; // Needed for Rectangle
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Slovene;
// Load image and specify content area for OCR
using (var Input = new OcrInput())
{
var ContentArea = new Rectangle { X = 215, Y = 1250, Height = 280, Width = 1335 };
// Dimenzije so v px
Input.Add("document.png", ContentArea);
// Perform OCR and get the result
var Result = Ocr.Read(Input);
// Display the result text
Console.WriteLine(Result.Text);
}
Imports IronOcr
Imports System.Drawing ' Needed for Rectangle
Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Slovene
' Load image and specify content area for OCR
Using Input = New OcrInput()
Dim ContentArea = New Rectangle With {
.X = 215,
.Y = 1250,
.Height = 280,
.Width = 1335
}
' Dimenzije so v px
Input.Add("document.png", ContentArea)
' Perform OCR and get the result
Dim Result = Ocr.Read(Input)
' Display the result text
Console.WriteLine(Result.Text)
End Using
OCR za nizkokakovostne optične bralnike
Razred IronOCR OcrInput
lahko popravi skeniranja, ki jih običajni Tesseract ne more prebrati.
using IronOcr;
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Slovene;
// Load low-quality image for OCR
using (var Input = new OcrInput(@"img\Potter.LowQuality.tiff"))
{
Input.DeNoise(); // Odpravlja digitalni šum in slabo skeniranje
Input.Deskew(); // Določa rotacijo in perspektivo
// Perform OCR and get the result
var Result = Ocr.Read(Input);
// Display the result text
Console.WriteLine(Result.Text);
}
using IronOcr;
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Slovene;
// Load low-quality image for OCR
using (var Input = new OcrInput(@"img\Potter.LowQuality.tiff"))
{
Input.DeNoise(); // Odpravlja digitalni šum in slabo skeniranje
Input.Deskew(); // Določa rotacijo in perspektivo
// Perform OCR and get the result
var Result = Ocr.Read(Input);
// Display the result text
Console.WriteLine(Result.Text);
}
Imports IronOcr
Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Slovene
' Load low-quality image for OCR
Using Input = New OcrInput("img\Potter.LowQuality.tiff")
Input.DeNoise() ' Odpravlja digitalni šum in slabo skeniranje
Input.Deskew() ' Določa rotacijo in perspektivo
' Perform OCR and get the result
Dim Result = Ocr.Read(Input)
' Display the result text
Console.WriteLine(Result.Text)
End Using
Izvoz rezultatov OCR kot PDF, ki ga je mogoče iskati
Slika v PDF s kopiranimi besedilnimi nizi. Lahko jih indeksirajo iskalniki in baze podatkov.
using IronOcr;
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Slovene;
// Load images for conversion to searchable PDF
using (var Input = new OcrInput())
{
input.Title = "Quarterly Report";
input.AddImage("image1.jpeg");
input.AddImage("image2.png");
input.AddImage("image3.gif");
// Perform OCR and save as searchable PDF
var Result = Ocr.Read(input);
Result.SaveAsSearchablePdf("searchable.pdf");
}
using IronOcr;
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Slovene;
// Load images for conversion to searchable PDF
using (var Input = new OcrInput())
{
input.Title = "Quarterly Report";
input.AddImage("image1.jpeg");
input.AddImage("image2.png");
input.AddImage("image3.gif");
// Perform OCR and save as searchable PDF
var Result = Ocr.Read(input);
Result.SaveAsSearchablePdf("searchable.pdf");
}
Imports IronOcr
Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Slovene
' Load images for conversion to searchable PDF
Using Input = New OcrInput()
input.Title = "Quarterly Report"
input.AddImage("image1.jpeg")
input.AddImage("image2.png")
input.AddImage("image3.gif")
' Perform OCR and save as searchable PDF
Dim Result = Ocr.Read(input)
Result.SaveAsSearchablePdf("searchable.pdf")
End Using
Pretvorba TIFF v pretvorbo PDF
Pretvorite dokument TIFF (ali katero koli skupino slikovnih datotek) neposredno v PDF, ki ga je mogoče iskati in ga lahko indeksirajo intranet, spletna mesta in Googlovi iskalniki.
using IronOcr;
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Slovene;
// Load TIFF for conversion to searchable PDF
using (var Input = new OcrInput())
{
input.AddMultiFrameTiff("example.tiff");
// Perform OCR and save as searchable PDF
var Result = Ocr.Read(input).SaveAsSearchablePdf("searchable.pdf");
}
using IronOcr;
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Slovene;
// Load TIFF for conversion to searchable PDF
using (var Input = new OcrInput())
{
input.AddMultiFrameTiff("example.tiff");
// Perform OCR and save as searchable PDF
var Result = Ocr.Read(input).SaveAsSearchablePdf("searchable.pdf");
}
Imports IronOcr
Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Slovene
' Load TIFF for conversion to searchable PDF
Using Input = New OcrInput()
input.AddMultiFrameTiff("example.tiff")
' Perform OCR and save as searchable PDF
Dim Result = Ocr.Read(input).SaveAsSearchablePdf("searchable.pdf")
End Using
Izvoz rezultatov OCR kot HTML
Pretvorba slike OCR v XHTML.
using IronOcr;
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Slovene;
// Load image for conversion to HTML
using (var Input = new OcrInput())
{
input.Title = "Html Title";
input.AddImage("image1.jpeg");
// Perform OCR and save as HTML
var Result = Ocr.Read(input);
Result.SaveAsHocrFile("results.html");
}
using IronOcr;
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Slovene;
// Load image for conversion to HTML
using (var Input = new OcrInput())
{
input.Title = "Html Title";
input.AddImage("image1.jpeg");
// Perform OCR and save as HTML
var Result = Ocr.Read(input);
Result.SaveAsHocrFile("results.html");
}
Imports IronOcr
Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Slovene
' Load image for conversion to HTML
Using Input = New OcrInput()
input.Title = "Html Title"
input.AddImage("image1.jpeg")
' Perform OCR and save as HTML
Dim Result = Ocr.Read(input)
Result.SaveAsHocrFile("results.html")
End Using
Filtri za izboljšanje slike OCR
IronOCR ponuja edinstvene filtre za objekte OcrInput
za izboljšanje učinkovitosti optičnega prepoznavanja znakov.
Primer kode za izboljšanje slike
Vhodne slike OCR omogočajo boljšo kakovost za hitrejše in hitrejše rezultate OCR.
using IronOcr;
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Slovene;
// Load low-quality image for OCR
using (var Input = new OcrInput(@"LowQuality.jpeg"))
{
Input.DeNoise(); // Odpravlja digitalni šum in slabo skeniranje
Input.Deskew(); // Določa rotacijo in perspektivo
// Perform OCR and get the result
var Result = Ocr.Read(Input);
// Display the result text
Console.WriteLine(Result.Text);
}
using IronOcr;
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Slovene;
// Load low-quality image for OCR
using (var Input = new OcrInput(@"LowQuality.jpeg"))
{
Input.DeNoise(); // Odpravlja digitalni šum in slabo skeniranje
Input.Deskew(); // Določa rotacijo in perspektivo
// Perform OCR and get the result
var Result = Ocr.Read(Input);
// Display the result text
Console.WriteLine(Result.Text);
}
Imports IronOcr
Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Slovene
' Load low-quality image for OCR
Using Input = New OcrInput("LowQuality.jpeg")
Input.DeNoise() ' Odpravlja digitalni šum in slabo skeniranje
Input.Deskew() ' Določa rotacijo in perspektivo
' Perform OCR and get the result
Dim Result = Ocr.Read(Input)
' Display the result text
Console.WriteLine(Result.Text)
End Using
Seznam filtrov za slike OCR
Vhodni filtri za izboljšanje učinkovitosti OCR, ki so vgrajeni v IronOCR, vključujejo:
- OcrInput.Rotate (dvojne stopinje) - zasuka slike za število stopinj v smeri urnega kazalca. Za smer v levo uporabite negativne številke.
- OcrInput.Binarize() - Ta slikovni filter postavi vse slikovne pike v črno-bele brez sredine. Lahko izboljša primere delovanja OCR z zelo nizkim kontrastom besedila in ozadja.
- OcrInput.ToGrayScale() - ta slikovni filter spremeni vsako slikovno piko v odtenek sivine. Natančnost OCR verjetno ne bo izboljšala, lahko pa izboljša hitrost.
- OcrInput.Contrast() - samodejno poveča kontrast. Ta filter pogosto izboljša hitrost in natančnost OCR pri skeniranju z nizkim kontrastom.
- OcrInput.DeNoise() - Odstrani digitalni šum. Ta filter naj se uporablja samo tam, kjer se pričakuje hrup.
- OcrInput.Invert() - Pretvori vsako barvo. Npr. Bela postane črna: črna postane bela.
- OcrInput.Dilate() - napredna morfologija. Razširitev doda piksle mejam predmetov na sliki. Nasproti Erode.
- OcrInput.Erode() - Napredna morfologija. Erozija odstrani slikovne pike na mejah objektov, nasproti razširjene.
- OcrInput.Deskew() - zasuka sliko, tako da je prava pot navzgor in pravokotna. To je zelo koristno za OCR, ker je toleranca Tesseract za poševne preglede lahko tudi do 5 stopinj.
- OcrInput.DeepCleanBackgroundNoise() - Odstranjevanje močnega hrupa v ozadju. Ta filter uporabite samo, če je znan ekstremni hrup v ozadju dokumentov, ker bo ta filter tudi zmanjšal natančnost OCR čistih dokumentov in je zelo drag za CPU.
- OcrInput.EnhanceResolution - izboljša ločljivost slik nizke kakovosti. Ta filter ni pogosto potreben, ker
OcrInput.MinimumDPI
inOcrInput.TargetDPI
samodejno ujameta in razrešujeta vnose z nizko ločljivostjo.
CleanBackgroundNoise. To je nastavitev, ki je nekoliko zamudna; vendar knjižnici omogoča samodejno čiščenje digitalnega šuma, zmečkanja papirja in drugih pomanjkljivosti znotraj digitalne slike, zaradi česar je druge knjižnice OCR ne morejo brati.
EnhanceContrast je nastavitev, zaradi katere OCR železa samodejno poveča kontrast besedila na ozadju slike, poveča natančnost OCR in na splošno poveča zmogljivost in hitrost OCR.
EnhanceResolution je nastavitev, ki samodejno zazna slike z nizko ločljivostjo (pod 275 dpi) in samodejno poveča sliko, nato pa izostri celotno besedilo, da ga knjižnica OCR lahko popolnoma prebere. Čeprav je ta operacija že sama po sebi zamudna, na splošno zmanjša skupni čas za operacijo OCR na sliki.
Language IronOCR podpira 22 mednarodnih jezikovnih paketov, z jezikovno nastavitvijo pa lahko izberete enega ali več jezikov, ki bodo uporabljeni za operacijo OCR.
Strategija IronOCR podpira dve strategiji. Lahko se odločimo za hitro in manj natančno skeniranje dokumenta ali pa uporabimo napredno strategijo, ki uporablja nekatere modele umetne inteligence za samodejno izboljšanje natančnosti besedila OCR, tako da preučimo statistično razmerje besed med seboj v stavku.
ColorSpace je nastavitev, pri kateri se lahko odločimo za OCR v sivinah ali barvah. Na splošno je najboljša možnost sivina. Vendar včasih, ko obstajajo besedila ali ozadja podobnega odtenka, vendar zelo različne barve, bo polnobarvni barvni prostor zagotovil boljše rezultate.
DetectWhiteTextOnDarkBackgrounds. Na splošno vse knjižnice OCR pričakujejo, da bodo na belem ozadju videli črno besedilo. Ta nastavitev omogoča IronOCR, da samodejno zazna negative ali temne strani z belim besedilom in jih prebere.
InputImageType. Ta nastavitev omogoča razvijalcu, da vodi knjižnico OCR glede tega, ali si ogleduje celoten dokument ali delček, na primer posnetek zaslona.
RotateAndStraighten je napredna nastavitev, ki omogoča IronOCR edinstveno zmožnost branja dokumentov, ki niso samo zasukani, ampak morda vsebujejo perspektivo, na primer fotografije besedilnih dokumentov.
ReadBarcode je uporabna funkcija, ki OCR-ju Iron omogoča samodejno branje črtnih kod in QR kod na straneh, saj tudi bere besedilo, ne da bi dodala veliko dodatno časovno obremenitev.
Globina barve. Ta nastavitev določa, koliko bitov na slikovno piko bo knjižnica OCR uporabila za določitev globine barve. Večja barvna globina lahko poveča kakovost OCR, vendar pa tudi čas, potreben za dokončanje postopka OCR.
126 Jezikovni paketi
IronOCR podpira 126 mednarodnih jezikov prek jezikovnih paketov, ki se distribuirajo kot DLL-ji in jih lahko prenesete s tega spletnega mesta ali pa tudi iz upravitelja paketov NuGet.
Med jeziki so nemščina, francoščina, angleščina, kitajščina, japonščina in mnogi drugi. Obstajajo posebni jezikovni paketi za potni list MRZ, čeke MICR, finančne podatke, registrske tablice in še veliko več. Uporabite lahko tudi katero koli datoteko tesseract ".traineddata" - vključno s tistimi, ki jih ustvarite sami.
Primer jezika
Uporaba drugih jezikov OCR.
using IronOcr;
// PM> Install IronOcr.Languages.Arabic
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Arabic;
// Load Arabic image for OCR
using (var input = new OcrInput())
{
input.AddImage("img/arabic.gif");
// Po potrebi dodajte slikovne filtre
// V tem primeru je celo miselni vložek zelo slabe kakovosti
// IronTesseract lahko prebere, česar običajni Tesseract ne more.
// Perform OCR and get the result
var Result = Ocr.Read(input);
// Konzola ne more zlahka tiskati arabščine v sistemu Windows.
// Namesto tega shranimo na disk.
Result.SaveAsTextFile("arabic.txt");
}
using IronOcr;
// PM> Install IronOcr.Languages.Arabic
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Arabic;
// Load Arabic image for OCR
using (var input = new OcrInput())
{
input.AddImage("img/arabic.gif");
// Po potrebi dodajte slikovne filtre
// V tem primeru je celo miselni vložek zelo slabe kakovosti
// IronTesseract lahko prebere, česar običajni Tesseract ne more.
// Perform OCR and get the result
var Result = Ocr.Read(input);
// Konzola ne more zlahka tiskati arabščine v sistemu Windows.
// Namesto tega shranimo na disk.
Result.SaveAsTextFile("arabic.txt");
}
Imports IronOcr
' PM> Install IronOcr.Languages.Arabic
Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Arabic
' Load Arabic image for OCR
Using input = New OcrInput()
input.AddImage("img/arabic.gif")
' Po potrebi dodajte slikovne filtre
' V tem primeru je celo miselni vložek zelo slabe kakovosti
' IronTesseract lahko prebere, česar običajni Tesseract ne more.
' Perform OCR and get the result
Dim Result = Ocr.Read(input)
' Konzola ne more zlahka tiskati arabščine v sistemu Windows.
' Namesto tega shranimo na disk.
Result.SaveAsTextFile("arabic.txt")
End Using
Primer več jezikov
OCR je mogoče tudi hkrati uporabljati v več jezikih. To lahko resnično pomaga pri pridobivanju metapodatkov in URL-jev v angleškem jeziku v dokumentih Unicode.
using IronOcr;
// PM> Install IronOcr.Languages.ChineseSimplified
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.ChineseSimplified;
Ocr.AddSecondaryLanguage(OcrLanguage.Slovene);
// Dodamo lahko poljubno število jezikov
// Load multi-language document for OCR
using (var input = new OcrInput())
{
input.Add("multi-language.pdf");
// Perform OCR and save the result to a text file
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.Slovene);
// Dodamo lahko poljubno število jezikov
// Load multi-language document for OCR
using (var input = new OcrInput())
{
input.Add("multi-language.pdf");
// Perform OCR and save the result to a text file
var Result = Ocr.Read(input);
Result.SaveAsTextFile("results.txt");
}
Imports IronOcr
' PM> Install IronOcr.Languages.ChineseSimplified
Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.ChineseSimplified
Ocr.AddSecondaryLanguage(OcrLanguage.Slovene)
' Dodamo lahko poljubno število jezikov
' Load multi-language document for OCR
Using input = New OcrInput()
input.Add("multi-language.pdf")
' Perform OCR and save the result to a text file
Dim Result = Ocr.Read(input)
Result.SaveAsTextFile("results.txt")
End Using
Podrobni cilji rezultatov OCR
IronOCR za vsako operacijo OCR vrne objekt rezultata OCR. Na splošno razvijalci uporabljajo samo lastnost besedila tega predmeta, da dobijo besedilo optično prebrano s slike. Vendar je DOM rezultatov OCR precej naprednejši od tega.
using IronOcr;
using System.Drawing; //Dodajte sklic na sklop
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Slovene;
Ocr.Configuration.EngineMode = TesseractEngineMode.TesseractAndLstm;
Ocr.Configuration.ReadBarCodes = true; //! Pomembno
// Load image for OCR
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;
// Tu raziščite in poiščite obsežen, podroben API:
// - Strani, bloki, parafafi, vrstice, besede, znaki
// - Izvoz slik, koordinate pisav, statistični podatki
}
using IronOcr;
using System.Drawing; //Dodajte sklic na sklop
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Slovene;
Ocr.Configuration.EngineMode = TesseractEngineMode.TesseractAndLstm;
Ocr.Configuration.ReadBarCodes = true; //! Pomembno
// Load image for OCR
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;
// Tu raziščite in poiščite obsežen, podroben API:
// - Strani, bloki, parafafi, vrstice, besede, znaki
// - Izvoz slik, koordinate pisav, statistični podatki
}
Imports IronOcr
Imports System.Drawing 'Dodajte sklic na sklop
Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Slovene
Ocr.Configuration.EngineMode = TesseractEngineMode.TesseractAndLstm
Ocr.Configuration.ReadBarCodes = True '! Pomembno
' Load image for OCR
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
' Tu raziščite in poiščite obsežen, podroben API:
' - Strani, bloki, parafafi, vrstice, besede, znaki
' - Izvoz slik, koordinate pisav, statistični podatki
End Using
Izvedba
IronOCR deluje izven škatle, ne da bi ga bilo treba prilagoditi ali močno spremeniti vhodne slike.
Hitrost je neverjetna: IronOcr.2020 + je do 10-krat hitrejši in naredi za več kot 250% manj napak kot prejšnje gradnje.
Nauči se več
Če želite izvedeti več o OCR v jeziku C#, VB, F# ali katerem koli drugem jeziku .NET, preberite naše vadnice v skupnosti, ki dajejo resnične primere, kako se lahko uporablja OCR Iron, in lahko prikažejo odtenke, kako najbolje izkoristiti ta knjižnica.
Na voljo je tudi popolna referenca predmeta za razvijalce .NET.