OCR italiano in C#e .Net

Altre versioni di questo documento:

IronOCR è un componente software C#che consente ai programmatori .NET di leggere testo da immagini e documenti PDF in 126 lingue, incluso l'italiano.

È un fork avanzato di Tesseract, costruito esclusivamente per gli sviluppatori .NET e supera regolarmente gli altri motori Tesseract sia per velocità che per precisione.

Contenuti di IronOcr.Languages.Italian

Questo pacchetto contiene 99 lingue OCR per .NET:

  • italiano
  • ItalianBest
  • ItalianFast
  • ItalianoVecchio
  • ItalianOldBest
  • ItalianOldFast

Scarica

Pacchetto lingua italiana [italiano]
* Download as Cerniera lampo
* Install with as
https://www.nuget.org/packages/IronOcr.Languages.Italian/'> NuGet

Installazione

La prima cosa che dobbiamo fare è installare il nostro pacchetto OCR italiano nel tuo progetto .NET.

PM> Install-Package IronOCR.Languages.Italian

Esempio di codice

Questo esempio di codice C#legge il testo italiano da un'immagine o un documento PDF.

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

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

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

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

Perché scegliere IronOCR?

Iron OCR è una libreria di software .NET facile da installare, completa e ben documentata.

Scegli IronOCR per ottenere una precisione OCR superiore al 99,8% senza utilizzare servizi Web esterni, tariffe correnti o inviare documenti riservati su Internet.

Perché gli sviluppatori C#scelgono IronOCR su Vanilla Tesseract:

  • Installa come una singola DLL o Nuget
  • Include per Tesseract 5, 4 e 3 motori fuori dalla scatola.
  • La precisione del 99,8% supera in modo significativo il normale Tesseract.
  • Velocità incredibile e MultiThreading
  • Compatibile con MVC, WebApp, desktop, console e applicazioni server
  • Nessun codice Exes o C ++ con cui lavorare
  • Supporto completo per PDF OCR
  • Per eseguire l'OCR quasi tutti i file immagine o PDF
  • Supporto completo .Net Core, Standard e FrameWork
  • Distribuisci su Windows, Mac, Linux, Azure, Docker, Lambda, AWS
  • Leggi codici a barre e codici QR
  • Esporta OCR come XHTML
  • Esporta OCR in documenti PDF ricercabili
  • Supporto multithreading
  • 126 lingue internazionali tutte gestite tramite file Nuget o OcrData
  • Estrai immagini, coordinate, statistiche e caratteri. Non solo testo.
  • Può essere utilizzato per ridistribuire Tesseract OCR all'interno di applicazioni commerciali e proprietarie.

Iron OCR brilla quando si lavora con immagini del mondo reale e documenti imperfetti come fotografie o scansioni a bassa risoluzione che possono presentare disturbi o imperfezioni digitali.

Altre librerie OCR gratuite per la piattaforma .NET, come altre API .net tesseract e servizi web, non funzionano così bene in questi casi d'uso del mondo reale.

OCR con Tesseract 5 - Inizia la codifica in C #

L'esempio di codice riportato di seguito mostra quanto sia facile leggere il testo da un'immagine utilizzando C#o VB .NET.

OneLiner

string Text = new IronTesseract().Read(@"img\Screenshot.png").Text;
string Text = new IronTesseract().Read(@"img\Screenshot.png").Text;
Dim Text As String = (New IronTesseract()).Read("img\Screenshot.png").Text
VB   C#

Hello World configurabile

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

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Italian;
using (var Input = new OcrInput()){
Input.AddImage("images/sample.jpeg")
//... puoi aggiungere un numero qualsiasi di immagini
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
// PM> Install-Package IronOCR.Languages.Italian
using IronOcr;

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Italian;
using (var Input = new OcrInput()){
Input.AddImage("images/sample.jpeg")
//... puoi aggiungere un numero qualsiasi di immagini
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
' PM> Install-Package IronOCR.Languages.Italian
Imports IronOcr

Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Italian
Using Input = New OcrInput()
Input.AddImage("images/sample.jpeg") var Result = Ocr.Read(Input)
Console.WriteLine(Result.Text)
End Using
VB   C#

OCR PDF in C #

Lo stesso approccio può essere utilizzato in modo simile per estrarre il testo da qualsiasi documento PDF.

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Italian;
using (var input = new OcrInput())
{
input.AddPdf("example.pdf", "password");
// Possiamo anche selezionare numeri di pagina PDF specifici per l'OCR

var Result = Ocr.Read(input);

Console.WriteLine(Result.Text);
Console.WriteLine($"{Result.Pages.Count()} Pages");
// 1 pagina per ogni pagina del PDF
}
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Italian;
using (var input = new OcrInput())
{
input.AddPdf("example.pdf", "password");
// Possiamo anche selezionare numeri di pagina PDF specifici per l'OCR

var Result = Ocr.Read(input);

Console.WriteLine(Result.Text);
Console.WriteLine($"{Result.Pages.Count()} Pages");
// 1 pagina per ogni pagina del PDF
}
Dim Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Italian
Using input = New OcrInput()
input.AddPdf("example.pdf", "password")
' Possiamo anche selezionare numeri di pagina PDF specifici per l'OCR

Dim Result = Ocr.Read(input)

Console.WriteLine(Result.Text)
Console.WriteLine($"{Result.Pages.Count()} Pages")
' 1 pagina per ogni pagina del PDF
End Using
VB   C#

OCR per TIFF multipagina

OCR Lettura del formato di file TIFF che include documenti a più pagine. TIFF può anche essere convertito direttamente in un file PDF con testo ricercabile.

using IronOcr;

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

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

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

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

Codici a barre e QR

Una caratteristica unica di Iron OCR è che può leggere codici a barre e codici QR dai documenti durante la scansione del testo. Le istanze della classe OcrResult.OcrBarcode forniscono allo sviluppatore informazioni dettagliate su ogni codice a barre scansionato.

// 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);
// tipologia e posizione anche immobili esposti
}
}
// 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);
// tipologia e posizione anche immobili esposti
}
}
' 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)
' tipologia e posizione anche immobili esposti
Next Barcode
End Using
VB   C#

OCR su aree specifiche delle immagini

Tutti i metodi di scansione e lettura di Iron OCR forniscono la capacità di specificare esattamente da quale parte di una pagina o pagine desideriamo leggere il testo. Questo è molto utile quando stiamo esaminando moduli standardizzati e può far risparmiare un sacco di tempo e migliorare l'efficienza.

Per utilizzare le aree di ritaglio, sarà necessario aggiungere un riferimento di sistema a System.Drawing modo da poter utilizzare l'oggetto System.Drawing.Rectangle .

using IronOcr;

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

using (var Input = new OcrInput())
{
var ContentArea = new System.Drawing.Rectangle() { X = 215, Y = 1250, Height = 280, Width = 1335 };
// Le dimensioni sono in px

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

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

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

using (var Input = new OcrInput())
{
var ContentArea = new System.Drawing.Rectangle() { X = 215, Y = 1250, Height = 280, Width = 1335 };
// Le dimensioni sono in px

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

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

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

Using Input = New OcrInput()
Dim ContentArea = New System.Drawing.Rectangle() With {
	.X = 215,
	.Y = 1250,
	.Height = 280,
	.Width = 1335
}
' Le dimensioni sono in px

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

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

OCR per scansioni di bassa qualità

La classe Iron OCR OcrInput può correggere scansioni che il normale Tesseract non è in grado di leggere.

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

using (var Input = new OcrInput(@"img\Potter.LowQuality.tiff"))
{
Input.DeNoise(); // risolve il rumore digitale e la scarsa scansione
Input.Deskew(); // risolve la rotazione e la prospettiva
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
using IronOcr;
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Italian;

using (var Input = new OcrInput(@"img\Potter.LowQuality.tiff"))
{
Input.DeNoise(); // risolve il rumore digitale e la scarsa scansione
Input.Deskew(); // risolve la rotazione e la prospettiva
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
Imports IronOcr
Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Italian

Using Input = New OcrInput("img\Potter.LowQuality.tiff")
Input.DeNoise() ' risolve il rumore digitale e la scarsa scansione
Input.Deskew() ' risolve la rotazione e la prospettiva
Dim Result = Ocr.Read(Input)
Console.WriteLine(Result.Text)
End Using
VB   C#

Esporta i risultati dell'OCR come PDF ricercabile

Immagine in PDF con stringhe di testo copiabili. Può essere indicizzato da motori di ricerca e database.

using IronOcr;

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

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

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

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#

Conversione da TIFF a PDF ricercabile

Converti un documento TIFF (o qualsiasi gruppo di file immagine) direttamente in un PDF ricercabile che può essere indicizzato da intranet, sito web e motori di ricerca Google.

using IronOcr;

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

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

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

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

Esporta i risultati dell'OCR come HTML

Conversione da immagine OCR a XHTML.

using IronOcr;

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

Filtri di miglioramento delle immagini OCR

IronOCR fornisce filtri unici per OcrInput oggetti OcrInput per migliorare le prestazioni OCR.

Esempio di codice di miglioramento dell'immagine

Rende le immagini in ingresso OCR di qualità superiore per produrre risultati OCR migliori e più veloci.

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

using (var Input = new OcrInput(@"LowQuality.jpeg"))
{
Input.DeNoise(); // risolve il rumore digitale e la scarsa scansione
Input.Deskew(); // risolve la rotazione e la prospettiva
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
using IronOcr;
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Italian;

using (var Input = new OcrInput(@"LowQuality.jpeg"))
{
Input.DeNoise(); // risolve il rumore digitale e la scarsa scansione
Input.Deskew(); // risolve la rotazione e la prospettiva
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
Imports IronOcr
Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Italian

Using Input = New OcrInput("LowQuality.jpeg")
Input.DeNoise() ' risolve il rumore digitale e la scarsa scansione
Input.Deskew() ' risolve la rotazione e la prospettiva
Dim Result = Ocr.Read(Input)
Console.WriteLine(Result.Text)
End Using
VB   C#

Elenco dei filtri immagine OCR

I filtri di input per migliorare le prestazioni OCR incorporati in IronOCR includono:

  • OcrInput.Rotate (doppi gradi) - Ruota le immagini di un numero di gradi in senso orario. Per il senso antiorario, usa numeri negativi.
  • OcrInput.Binarize () - Questo filtro immagine trasforma ogni pixel in bianco o nero senza una via di mezzo. Può migliorare le prestazioni dell'OCR nei casi di contrasto molto basso del testo con lo sfondo.
  • OcrInput.ToGrayScale () - Questo filtro immagine trasforma ogni pixel in una sfumatura di scala di grigi. È improbabile che migliori la precisione dell'OCR, ma può aumentare la velocità
  • OcrInput.Contrast () - Aumenta automaticamente il contrasto. Questo filtro spesso migliora la velocità e la precisione dell'OCR nelle scansioni a basso contrasto.
  • OcrInput.DeNoise () - Rimuove il rumore digitale. Questo filtro deve essere utilizzato solo dove è previsto il rumore.
  • OcrInput.Invert () - Inverte ogni colore. Ad esempio, il bianco diventa nero: il nero diventa bianco.
  • OcrInput.Dilate () - Morfologia avanzata. La dilatazione aggiunge pixel ai bordi degli oggetti in un'immagine. Opposto di Erode
  • OcrInput.Erode () - Morfologia avanzata. L'erosione rimuove i pixel sui contorni dell'oggetto opposto a Dilata
  • OcrInput.Deskew () - Ruota un'immagine in modo che sia verso l'alto e ortogonale. Ciò è molto utile per l'OCR perché la tolleranza di Tesseract per le scansioni oblique può essere di soli 5 gradi.
  • OcrInput.DeepCleanBackgroundNoise () - Rimozione del rumore di fondo pesante. Utilizzare questo filtro solo nel caso in cui sia noto un rumore di fondo eccessivo del documento, poiché questo filtro rischierà anche di ridurre l'accuratezza dell'OCR dei documenti puliti ed è molto costoso per la CPU.
  • OcrInput.EnhanceResolution : migliora la risoluzione delle immagini di bassa qualità. Questo filtro spesso non è necessario perché OcrInput.MinimumDPI e OcrInput.TargetDPI rileveranno e risolveranno automaticamente gli input a bassa risoluzione.

CleanBackgroundNoise. Questa è un'impostazione che richiede un po 'di tempo; tuttavia, consente alla libreria di pulire automaticamente il rumore digitale, le pieghe della carta e altre imperfezioni all'interno di un'immagine digitale che altrimenti la renderebbero incapace di essere letta da altre librerie OCR.

EnhanceContrast è un'impostazione che fa sì che Iron OCR aumenti automaticamente il contrasto del testo sullo sfondo di un'immagine, aumentando la precisione dell'OCR e in generale aumentando le prestazioni e la velocità dell'OCR.

EnhanceResolution è un'impostazione che rileva automaticamente le immagini a bassa risoluzione (che sono inferiori a 275 dpi) e migliora automaticamente l'immagine e quindi affina tutto il testo in modo che possa essere letto perfettamente da una libreria OCR. Sebbene questa operazione richieda di per sé molto tempo, generalmente riduce il tempo complessivo per un'operazione OCR su un'immagine.

Lingua Iron OCR supporta 22 pacchetti di lingue internazionali e l'impostazione della lingua può essere utilizzata per selezionare una o più lingue multiple da applicare per un'operazione OCR.

Strategia Iron OCR supporta due strategie. Possiamo scegliere di eseguire una scansione rapida e meno accurata di un documento o di utilizzare una strategia avanzata che utilizza alcuni modelli di intelligenza artificiale per migliorare automaticamente l'accuratezza del testo OCR osservando la relazione statistica tra le parole in una frase .

ColorSpace è un'impostazione in base alla quale possiamo scegliere di eseguire l'OCR in scala di grigi o a colori. Generalmente, la scala di grigi è l'opzione migliore. Tuttavia, a volte quando sono presenti testi o sfondi di tonalità simili ma colori molto diversi, uno spazio colore a colori fornisce risultati migliori.

DetectWhiteTextOnDarkBackgrounds. In generale, tutte le librerie OCR si aspettano di vedere il testo nero su sfondo bianco. Questa impostazione consente a Iron OCR di rilevare automaticamente i negativi o le pagine scure con testo bianco e di leggerli.

InputImageType. Questa impostazione consente allo sviluppatore di guidare la libreria OCR per verificare se sta guardando un documento completo o uno snippet, come uno screenshot.

RotateAndStraighten è un'impostazione avanzata che consente a Iron OCR la capacità unica di leggere documenti che non solo vengono ruotati, ma forse contengono prospettiva, come fotografie di documenti di testo.

ReadBarcodes è una funzione utile che consente a Iron OCR di leggere automaticamente codici a barre e codici QR sulle pagine mentre legge anche il testo, senza aggiungere un grande onere di tempo aggiuntivo.

Profondità di colore. Questa impostazione determina il numero di bit per pixel che la libreria OCR utilizzerà per determinare la profondità di un colore. Una maggiore profondità di colore può aumentare la qualità OCR, ma aumenterà anche il tempo necessario per il completamento dell'operazione OCR.

126 Language Pack

Iron OCR supporta 126 lingue internazionali tramite language pack distribuiti come DLL, che possono essere scaricati da questo sito Web o anche da NuGet Package Manager .

Le lingue includono tedesco, francese, inglese, cinese, giapponese e molte altre. Esistono language pack specialistici per passaporto MRZ, assegni MICR, dati finanziari, targhe e molti altri. Puoi anche utilizzare qualsiasi file tesseract ".traineddata", inclusi quelli creati da te.

Esempio di lingua

Utilizzo di altre lingue 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");
// Aggiungi filtri immagine se necessario
// In questo caso, anche l'input del pensiero è di qualità molto bassa
// IronTesseract può leggere ciò che Tesseract convenzionale non può.

var Result = Ocr.Read(input);

// La console non può stampare facilmente l'arabo su Windows.
// Salviamo invece su disco.
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");
// Aggiungi filtri immagine se necessario
// In questo caso, anche l'input del pensiero è di qualità molto bassa
// IronTesseract può leggere ciò che Tesseract convenzionale non può.

var Result = Ocr.Read(input);

// La console non può stampare facilmente l'arabo su Windows.
// Salviamo invece su disco.
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")
' Aggiungi filtri immagine se necessario
' In questo caso, anche l'input del pensiero è di qualità molto bassa
' IronTesseract può leggere ciò che Tesseract convenzionale non può.

Dim Result = Ocr.Read(input)

' La console non può stampare facilmente l'arabo su Windows.
' Salviamo invece su disco.
Result.SaveAsTextFile("arabic.txt")
End Using
VB   C#

Esempio in più lingue

È anche possibile eseguire l'OCR utilizzando più lingue contemporaneamente. Questo può davvero aiutare a ottenere metadati e URL in lingua inglese nei documenti Unicode.

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

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

// Possiamo aggiungere un numero qualsiasi di lingue

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

// Possiamo aggiungere un numero qualsiasi di lingue

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

' Possiamo aggiungere un numero qualsiasi di lingue

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

Oggetti risultati OCR dettagliati

Iron OCR restituisce un oggetto risultato OCR per ciascuna operazione OCR. In genere, gli sviluppatori utilizzano solo la proprietà text di questo oggetto per ottenere la scansione del testo dall'immagine. Tuttavia, i risultati dell'OCR DOM sono molto più avanzati di così.

using IronOcr;
using System.Drawing; //Aggiungi riferimento all'assieme

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Italian;
Ocr.Configuration.EngineMode = TesseractEngineMode.TesseractAndLstm;
Ocr.Configuration.ReadBarCodes = true; //!Importante

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;
// Esplora qui per trovare un'API massiccia e dettagliata:
// - Pagine, Blocchi, Paraphaph, Linee, Parole, Caratteri
// - Esportazione di immagini, coordinate dei caratteri, dati statistici
}
using IronOcr;
using System.Drawing; //Aggiungi riferimento all'assieme

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Italian;
Ocr.Configuration.EngineMode = TesseractEngineMode.TesseractAndLstm;
Ocr.Configuration.ReadBarCodes = true; //!Importante

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;
// Esplora qui per trovare un'API massiccia e dettagliata:
// - Pagine, Blocchi, Paraphaph, Linee, Parole, Caratteri
// - Esportazione di immagini, coordinate dei caratteri, dati statistici
}
Imports IronOcr
Imports System.Drawing 'Aggiungi riferimento all'assieme

Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Italian
Ocr.Configuration.EngineMode = TesseractEngineMode.TesseractAndLstm
Ocr.Configuration.ReadBarCodes = True '!Importante

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
' Esplora qui per trovare un'API massiccia e dettagliata:
' - Pagine, Blocchi, Paraphaph, Linee, Parole, Caratteri
' - Esportazione di immagini, coordinate dei caratteri, dati statistici
End Using
VB   C#

Prestazione

IronOCR funziona fuori dagli schemi senza la necessità di ottimizzare le prestazioni o modificare pesantemente le immagini di input.

La velocità è incredibile: IronOcr.2020 + è fino a 10 volte più veloce e fa oltre il 250% di errori in meno rispetto alle build precedenti.

Per saperne di più

Per saperne di più sull'OCR in C #, VB, F # o qualsiasi altro linguaggio .NET, leggi i nostri tutorial della community , che forniscono esempi reali di come Iron OCR può essere utilizzato e possono mostrare le sfumature di come ottenere il meglio da questa libreria.

È inoltre disponibile un riferimento completo agli oggetti per gli sviluppatori .NET .