<meta http-equiv="content-language" content="it" />
# OCR italiano in C# e .NET
###### Altre versioni di questo documento:
- [inglese (This Page in English)](/csharp/ocr/languages/italian/)
- [Più Lingue](/csharp/ocr/languages/)
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](/csharp/ocr/packages/language-packs/Italian.ocrdata.zip)
* Install with [NuGet](https://www.nuget.org/packages/IronOcr.Languages.Italian/)
## Installazione
La prima cosa che dobbiamo fare è installare il nostro pacchetto OCR **italiano** nel tuo progetto .NET.
```shell
:InstallCmd Install-Package IronOcr.Languages.Italian
```
## Esempio di codice
Questo esempio di codice C# legge il testo italiano da un'immagine o un documento PDF.
```csharp
// Importa la libreria IronOcr
using IronOcr;
// Crea un'istanza di IronTesseract
var Ocr = new IronTesseract();
// Imposta la lingua su italiano
Ocr.Language = OcrLanguage.Italian;
// Utilizza un file immagine come input
using (var Input = new OcrInput(@"images\Italian.png"))
{
// Leggi l'immagine
var Result = Ocr.Read(Input);
// Ottieni tutto il testo dall'immagine
var AllText = Result.Text;
// Stampa il testo ottenuto
Console.WriteLine(AllText);
}
```
## Perché scegliere IronOCR?
IronOCR è 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 in 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.
_IronOCR 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](/csharp/ocr/use-case/free-ocr-csharp/) 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
```csharp
using IronOcr;
// Legge il testo da un'immagine in un'unica riga di codice
string Text = new IronTesseract().Read(@"img\Screenshot.png").Text;
```
### Hello World configurabile
```csharp
// Importa la libreria IronOcr
using IronOcr;
// Crea un'istanza di IronTesseract
var Ocr = new IronTesseract();
// Imposta la lingua su italiano
Ocr.Language = OcrLanguage.Italian;
// Utilizza un file immagine come input
using (var Input = new OcrInput())
{
// Aggiunge l'immagine al processo OCR
Input.AddImage("images/sample.jpeg");
//... puoi aggiungere un numero qualsiasi di immagini
// Leggi l'immagine
var Result = Ocr.Read(Input);
// Stampa il testo ottenuto
Console.WriteLine(Result.Text);
}
```
### OCR PDF in C#
Lo stesso approccio può essere utilizzato in modo simile per estrarre il testo da qualsiasi documento PDF.
```csharp
using IronOcr;
// Crea un'istanza di IronTesseract
var Ocr = new IronTesseract();
// Imposta la lingua su italiano
Ocr.Language = OcrLanguage.Italian;
// Utilizza un file PDF come input
using (var input = new OcrInput())
{
// Aggiunge il PDF specificando una password, se necessario
input.AddPdf("example.pdf", "password");
// Possiamo anche selezionare numeri di pagina PDF specifici per l'OCR
// Leggi il PDF
var Result = Ocr.Read(input);
// Stampa il testo ottenuto e il numero di pagine
Console.WriteLine(Result.Text);
Console.WriteLine($"{Result.Pages.Count()} Pages");
// 1 pagina per ogni pagina del PDF
}
```
### 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.
```csharp
using IronOcr;
// Crea un'istanza di IronTesseract
var Ocr = new IronTesseract();
// Imposta la lingua su italiano
Ocr.Language = OcrLanguage.Italian;
// Utilizza un file TIFF multipagina come input
using (var Input = new OcrInput())
{
// Aggiunge il TIFF multipagina al processo
Input.AddMultiFrameTiff("multi-frame.tiff");
// Leggi il TIFF multipagina
var Result = Ocr.Read(Input);
// Stampa il testo ottenuto
Console.WriteLine(Result.Text);
}
```
### Codici a barre e QR
Una caratteristica unica di IronOCR è 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.
```csharp
using IronOcr;
// Crea un'istanza di IronTesseract
var Ocr = new IronTesseract();
// Configura IronTesseract per leggere i codici a barre
Ocr.Configuration.ReadBarCodes = true;
// Utilizza un file immagine come input
using (var input = new OcrInput())
{
// Aggiunge l'immagine al processo
input.AddImage("img/Barcode.png");
// Leggi l'immagine
var Result = Ocr.Read(input);
// Scorri tutti i codici a barre trovati e stampali
foreach (var Barcode in Result.Barcodes)
{
Console.WriteLine(Barcode.Value);
// Può anche stampare tipo e posizione del barcode
}
}
```
### OCR su aree specifiche delle immagini
Tutti i metodi di scansione e lettura di IronOCR 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`.
```csharp
using IronOcr;
using System.Drawing; // Aggiunta necessaria per utilizzare il rectangle
// Crea un'istanza di IronTesseract
var Ocr = new IronTesseract();
// Imposta la lingua su italiano
Ocr.Language = OcrLanguage.Italian;
// Utilizza un file immagine come input con area specifica
using (var Input = new OcrInput())
{
// Definisci l'area di contenuto che desideri leggere
var ContentArea = new Rectangle() { X = 215, Y = 1250, Height = 280, Width = 1335 };
// Aggiunge l'area specificata al processo
Input.Add("document.png", ContentArea);
// Leggi il documento
var Result = Ocr.Read(Input);
// Stampa il testo ottenuto
Console.WriteLine(Result.Text);
}
```
### OCR per scansioni di bassa qualità
La classe IronOCR `OcrInput` può correggere scansioni che il normale Tesseract non è in grado di leggere.
```csharp
using IronOcr;
// Crea un'istanza di IronTesseract
var Ocr = new IronTesseract();
// Imposta la lingua su italiano
Ocr.Language = OcrLanguage.Italian;
// Utilizza un'immagine di bassa qualità come input
using (var Input = new OcrInput(@"img\Potter.LowQuality.tiff"))
{
// Applica filtri per migliorare la qualità dell'immagine
Input.DeNoise(); // Risolve il rumore digitale e la cattiva qualità della scansione
Input.Deskew(); // Risolve la rotazione e la prospettiva
// Leggi l'immagine
var Result = Ocr.Read(Input);
// Stampa il testo ottenuto
Console.WriteLine(Result.Text);
}
```
### 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.
```csharp
using IronOcr;
// Crea un'istanza di IronTesseract
var Ocr = new IronTesseract();
// Imposta la lingua su italiano
Ocr.Language = OcrLanguage.Italian;
// Utilizza un insieme di immagini come input
using (var Input = new OcrInput())
{
// Imposta il titolo per l'output PDF
Input.Title = "Quarterly Report";
// Aggiunge immagini al processo
Input.AddImage("image1.jpeg");
Input.AddImage("image2.png");
Input.AddImage("image3.gif");
// Leggi il contenuto delle immagini
var Result = Ocr.Read(Input);
// Salva i risultati come un PDF ricercabile
Result.SaveAsSearchablePdf("searchable.pdf");
}
```
### 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.
```csharp
using IronOcr;
// Crea un'istanza di IronTesseract
var Ocr = new IronTesseract();
// Imposta la lingua su italiano
Ocr.Language = OcrLanguage.Italian;
// Utilizza un file TIFF multipagina come input
using (var Input = new OcrInput())
{
// Aggiunge il TIFF multipagina al processo
Input.AddMultiFrameTiff("example.tiff");
// Leggi il TIFF multipagina e salva come PDF ricercabile
var Result = Ocr.Read(Input).SaveAsSearchablePdf("searchable.pdf");
}
```
### Esporta i risultati dell'OCR come HTML
Conversione da immagine OCR a XHTML.
```csharp
using IronOcr;
// Crea un'istanza di IronTesseract
var Ocr = new IronTesseract();
// Imposta la lingua su italiano
Ocr.Language = OcrLanguage.Italian;
// Utilizza un file immagine come input
using (var Input = new OcrInput())
{
// Imposta il titolo per l'output HTML
Input.Title = "Html Title";
// Aggiunge l'immagine al processo
Input.AddImage("image1.jpeg");
// Leggi l'immagine
var Result = Ocr.Read(Input);
// Salva i risultati come file HTML
Result.SaveAsHocrFile("results.html");
}
```
## 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.
```csharp
using IronOcr;
// Crea un'istanza di IronTesseract
var Ocr = new IronTesseract();
// Imposta la lingua su italiano
Ocr.Language = OcrLanguage.Italian;
// Utilizza un'immagine di bassa qualità come input
using (var Input = new OcrInput(@"LowQuality.jpeg"))
{
// Applica filtri per migliorare la qualità dell'immagine
Input.DeNoise(); // Risolve il rumore digitale e la cattiva qualità della scansione
Input.Deskew(); // Risolve la rotazione e la prospettiva
// Leggi l'immagine
var Result = Ocr.Read(Input);
// Stampa il testo ottenuto
Console.WriteLine(Result.Text);
}
```
### 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 IronOCR 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** IronOCR 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** IronOCR 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 IronOCR 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 IronOCR 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 IronOCR 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
IronOCR supporta **126 lingue internazionali** tramite language pack distribuiti come DLL, che possono essere [scaricati da questo sito Web](https://example.com) o anche da [NuGet Package Manager](https://www.nuget.org/packages?q=IronOcr.Languages).
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.
```csharp
// Importa la libreria IronOcr
// PM> Install IronOcr.Languages.Arabic
var Ocr = new IronTesseract();
// Imposta la lingua su Arabo
Ocr.Language = OcrLanguage.Arabic;
// Utilizza un file immagine come input
using (var input = new OcrInput())
{
// Aggiunge l'immagine al processo OCR
input.AddImage("img/arabic.gif");
// Aggiungi filtri immagine se necessario
// IronTesseract può leggere ciò che Tesseract convenzionale non può.
// Leggi l'immagine
var Result = Ocr.Read(input);
// La console non può stampare facilmente l'arabo su Windows.
// Salviamo invece su disco.
Result.SaveAsTextFile("arabic.txt");
}
```
### 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.
```csharp
// Importa la libreria IronOcr
// PM> Install IronOcr.Languages.ChineseSimplified
var Ocr = new IronTesseract();
// Imposta la lingua su Cinese semplificato
Ocr.Language = OcrLanguage.ChineseSimplified;
// Aggiunge una seconda lingua al processo OCR
Ocr.AddSecondaryLanguage(OcrLanguage.Italian);
// Possiamo aggiungere un numero qualsiasi di lingue
using (var input = new OcrInput())
{
// Aggiunge il documento multilanguage al processo
input.Add("multi-language.pdf");
// Leggi il documento
var Result = Ocr.Read(input);
// Salva i risultati su disco
Result.SaveAsTextFile("results.txt");
}
```
## Oggetti risultati OCR dettagliati
IronOCR 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ì.
```csharp
using IronOcr;
using System.Drawing; // Aggiungi riferimento all'assieme
var Ocr = new IronTesseract();
// Imposta la lingua su italiano
Ocr.Language = OcrLanguage.Italian;
// Configura la modalità del motore
Ocr.Configuration.EngineMode = TesseractEngineMode.TesseractAndLstm;
// Configura per leggere codici a barre
Ocr.Configuration.ReadBarCodes = true; // Importante
// Utilizza un file TIFF come input
using (var Input = new OcrInput(@"images\sample.tiff"))
{
// Leggi il documento
OcrResult Result = Ocr.Read(Input);
// Ottieni le pagine del risultato
var Pages = Result.Pages;
// Ottieni le parole dalla prima pagina
var Words = Pages[0].Words;
// Ottieni i codici a barre dal risultato
var Barcodes = Result.Barcodes;
// Esplora qui per trovare un'API massiccia e dettagliata:
// - Pagine, Blocchi, Paragrafi, Linee, Parole, Caratteri
// - Esportazione di immagini, coordinate dei caratteri, dati statistici
}
```
## 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](https://example.com), che forniscono esempi reali di come IronOCR può essere utilizzato e possono mostrare le sfumature di come ottenere il meglio da questa libreria.
È inoltre disponibile un [riferimento](https://example.com) completo agli [oggetti per gli sviluppatori .NET](https://example.com).
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.
La prima cosa che dobbiamo fare è installare il nostro pacchetto OCR italiano nel tuo progetto .NET.
PM > Install-Package IronOcr.Languages.Italian
Install-Package IronOcr.Languages.Italian
Esempio di codice
Questo esempio di codice C# legge il testo italiano da un'immagine o un documento PDF.
// Importa la libreria IronOcrusing IronOcr;// Crea un'istanza di IronTesseractvarOcr = new IronTesseract();// Imposta la lingua su italianoOcr.Language = OcrLanguage.Italian;// Utilizza un file immagine come inputusing (varInput = new OcrInput(@"images\Italian.png")){ // Leggi l'immagine varResult = Ocr.Read(Input); // Ottieni tutto il testo dall'immagine varAllText = Result.Text; // Stampa il testo ottenutoConsole.WriteLine(AllText);}
// Importa la libreria IronOcr
using IronOcr;
// Crea un'istanza di IronTesseract
var Ocr = new IronTesseract();
// Imposta la lingua su italiano
Ocr.Language = OcrLanguage.Italian;
// Utilizza un file immagine come input
using (var Input = new OcrInput(@"images\Italian.png"))
{
// Leggi l'immagine
var Result = Ocr.Read(Input);
// Ottieni tutto il testo dall'immagine
var AllText = Result.Text;
// Stampa il testo ottenuto
Console.WriteLine(AllText);
}
' Importa la libreria IronOcrImportsIronOcr' Crea un'istanza di IronTesseractPrivateOcr = New IronTesseract()' Imposta la lingua su italianoOcr.Language = OcrLanguage.Italian' Utilizza un file immagine come inputUsingInput = New OcrInput("images\Italian.png") ' Leggi l'immagine DimResult = Ocr.Read(Input) ' Ottieni tutto il testo dall'immagine DimAllText = Result.Text ' Stampa il testo ottenutoConsole.WriteLine(AllText)EndUsing
' Importa la libreria IronOcr
Imports IronOcr
' Crea un'istanza di IronTesseract
Private Ocr = New IronTesseract()
' Imposta la lingua su italiano
Ocr.Language = OcrLanguage.Italian
' Utilizza un file immagine come input
Using Input = New OcrInput("images\Italian.png")
' Leggi l'immagine
Dim Result = Ocr.Read(Input)
' Ottieni tutto il testo dall'immagine
Dim AllText = Result.Text
' Stampa il testo ottenuto
Console.WriteLine(AllText)
End Using
Perché scegliere IronOCR?
IronOCR è 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 in 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.
IronOCR 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
using IronOcr;// Legge il testo da un'immagine in un'unica riga di codicestringText = new IronTesseract().Read(@"img\Screenshot.png").Text;
using IronOcr;
// Legge il testo da un'immagine in un'unica riga di codice
string Text = new IronTesseract().Read(@"img\Screenshot.png").Text;
ImportsIronOcr' Legge il testo da un'immagine in un'unica riga di codicePrivateTextAsString = (New IronTesseract()).Read("img\Screenshot.png").Text
Imports IronOcr
' Legge il testo da un'immagine in un'unica riga di codice
Private Text As String = (New IronTesseract()).Read("img\Screenshot.png").Text
Hello World configurabile
// Importa la libreria IronOcrusing IronOcr;// Crea un'istanza di IronTesseractvarOcr = new IronTesseract();// Imposta la lingua su italianoOcr.Language = OcrLanguage.Italian;// Utilizza un file immagine come inputusing (varInput = new OcrInput()){ // Aggiunge l'immagine al processo OCRInput.AddImage("images/sample.jpeg"); //... puoi aggiungere un numero qualsiasi di immagini // Leggi l'immagine varResult = Ocr.Read(Input); // Stampa il testo ottenutoConsole.WriteLine(Result.Text);}
// Importa la libreria IronOcr
using IronOcr;
// Crea un'istanza di IronTesseract
var Ocr = new IronTesseract();
// Imposta la lingua su italiano
Ocr.Language = OcrLanguage.Italian;
// Utilizza un file immagine come input
using (var Input = new OcrInput())
{
// Aggiunge l'immagine al processo OCR
Input.AddImage("images/sample.jpeg");
//... puoi aggiungere un numero qualsiasi di immagini
// Leggi l'immagine
var Result = Ocr.Read(Input);
// Stampa il testo ottenuto
Console.WriteLine(Result.Text);
}
' Importa la libreria IronOcrImportsIronOcr' Crea un'istanza di IronTesseractPrivateOcr = New IronTesseract()' Imposta la lingua su italianoOcr.Language = OcrLanguage.Italian' Utilizza un file immagine come inputUsingInput = New OcrInput() ' Aggiunge l'immagine al processo OCRInput.AddImage("images/sample.jpeg") '... puoi aggiungere un numero qualsiasi di immagini ' Leggi l'immagine DimResult = Ocr.Read(Input) ' Stampa il testo ottenutoConsole.WriteLine(Result.Text)EndUsing
' Importa la libreria IronOcr
Imports IronOcr
' Crea un'istanza di IronTesseract
Private Ocr = New IronTesseract()
' Imposta la lingua su italiano
Ocr.Language = OcrLanguage.Italian
' Utilizza un file immagine come input
Using Input = New OcrInput()
' Aggiunge l'immagine al processo OCR
Input.AddImage("images/sample.jpeg")
'... puoi aggiungere un numero qualsiasi di immagini
' Leggi l'immagine
Dim Result = Ocr.Read(Input)
' Stampa il testo ottenuto
Console.WriteLine(Result.Text)
End Using
OCR PDF in C#
Lo stesso approccio può essere utilizzato in modo simile per estrarre il testo da qualsiasi documento PDF.
using IronOcr;// Crea un'istanza di IronTesseractvarOcr = new IronTesseract();// Imposta la lingua su italianoOcr.Language = OcrLanguage.Italian;// Utilizza un file PDF come inputusing (var input = new OcrInput()){ // Aggiunge il PDF specificando una password, se necessario input.AddPdf("example.pdf", "password"); // Possiamo anche selezionare numeri di pagina PDF specifici per l'OCR // Leggi il PDF varResult = Ocr.Read(input); // Stampa il testo ottenuto e il numero di pagineConsole.WriteLine(Result.Text);Console.WriteLine($"{Result.Pages.Count()} Pages"); // 1 pagina per ogni pagina del PDF}
using IronOcr;
// Crea un'istanza di IronTesseract
var Ocr = new IronTesseract();
// Imposta la lingua su italiano
Ocr.Language = OcrLanguage.Italian;
// Utilizza un file PDF come input
using (var input = new OcrInput())
{
// Aggiunge il PDF specificando una password, se necessario
input.AddPdf("example.pdf", "password");
// Possiamo anche selezionare numeri di pagina PDF specifici per l'OCR
// Leggi il PDF
var Result = Ocr.Read(input);
// Stampa il testo ottenuto e il numero di pagine
Console.WriteLine(Result.Text);
Console.WriteLine($"{Result.Pages.Count()} Pages");
// 1 pagina per ogni pagina del PDF
}
ImportsIronOcr' Crea un'istanza di IronTesseractPrivateOcr = New IronTesseract()' Imposta la lingua su italianoOcr.Language = OcrLanguage.Italian' Utilizza un file PDF come inputUsing input = New OcrInput() ' Aggiunge il PDF specificando una password, se necessario input.AddPdf("example.pdf", "password") ' Possiamo anche selezionare numeri di pagina PDF specifici per l'OCR ' Leggi il PDF DimResult = Ocr.Read(input) ' Stampa il testo ottenuto e il numero di pagineConsole.WriteLine(Result.Text)Console.WriteLine($"{Result.Pages.Count()} Pages") ' 1 pagina per ogni pagina del PDFEndUsing
Imports IronOcr
' Crea un'istanza di IronTesseract
Private Ocr = New IronTesseract()
' Imposta la lingua su italiano
Ocr.Language = OcrLanguage.Italian
' Utilizza un file PDF come input
Using input = New OcrInput()
' Aggiunge il PDF specificando una password, se necessario
input.AddPdf("example.pdf", "password")
' Possiamo anche selezionare numeri di pagina PDF specifici per l'OCR
' Leggi il PDF
Dim Result = Ocr.Read(input)
' Stampa il testo ottenuto e il numero di pagine
Console.WriteLine(Result.Text)
Console.WriteLine($"{Result.Pages.Count()} Pages")
' 1 pagina per ogni pagina del PDF
End Using
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;// Crea un'istanza di IronTesseractvarOcr = new IronTesseract();// Imposta la lingua su italianoOcr.Language = OcrLanguage.Italian;// Utilizza un file TIFF multipagina come inputusing (varInput = new OcrInput()){ // Aggiunge il TIFF multipagina al processoInput.AddMultiFrameTiff("multi-frame.tiff"); // Leggi il TIFF multipagina varResult = Ocr.Read(Input); // Stampa il testo ottenutoConsole.WriteLine(Result.Text);}
using IronOcr;
// Crea un'istanza di IronTesseract
var Ocr = new IronTesseract();
// Imposta la lingua su italiano
Ocr.Language = OcrLanguage.Italian;
// Utilizza un file TIFF multipagina come input
using (var Input = new OcrInput())
{
// Aggiunge il TIFF multipagina al processo
Input.AddMultiFrameTiff("multi-frame.tiff");
// Leggi il TIFF multipagina
var Result = Ocr.Read(Input);
// Stampa il testo ottenuto
Console.WriteLine(Result.Text);
}
ImportsIronOcr' Crea un'istanza di IronTesseractPrivateOcr = New IronTesseract()' Imposta la lingua su italianoOcr.Language = OcrLanguage.Italian' Utilizza un file TIFF multipagina come inputUsingInput = New OcrInput() ' Aggiunge il TIFF multipagina al processoInput.AddMultiFrameTiff("multi-frame.tiff") ' Leggi il TIFF multipagina DimResult = Ocr.Read(Input) ' Stampa il testo ottenutoConsole.WriteLine(Result.Text)EndUsing
Imports IronOcr
' Crea un'istanza di IronTesseract
Private Ocr = New IronTesseract()
' Imposta la lingua su italiano
Ocr.Language = OcrLanguage.Italian
' Utilizza un file TIFF multipagina come input
Using Input = New OcrInput()
' Aggiunge il TIFF multipagina al processo
Input.AddMultiFrameTiff("multi-frame.tiff")
' Leggi il TIFF multipagina
Dim Result = Ocr.Read(Input)
' Stampa il testo ottenuto
Console.WriteLine(Result.Text)
End Using
Codici a barre e QR
Una caratteristica unica di IronOCR è 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;// Crea un'istanza di IronTesseractvarOcr = new IronTesseract();// Configura IronTesseract per leggere i codici a barreOcr.Configuration.ReadBarCodes = true;// Utilizza un file immagine come inputusing (var input = new OcrInput()){ // Aggiunge l'immagine al processo input.AddImage("img/Barcode.png"); // Leggi l'immagine varResult = Ocr.Read(input); // Scorri tutti i codici a barre trovati e stampali foreach (varBarcodeinResult.Barcodes) {Console.WriteLine(Barcode.Value); // Può anche stampare tipo e posizione del barcode }}
using IronOcr;
// Crea un'istanza di IronTesseract
var Ocr = new IronTesseract();
// Configura IronTesseract per leggere i codici a barre
Ocr.Configuration.ReadBarCodes = true;
// Utilizza un file immagine come input
using (var input = new OcrInput())
{
// Aggiunge l'immagine al processo
input.AddImage("img/Barcode.png");
// Leggi l'immagine
var Result = Ocr.Read(input);
// Scorri tutti i codici a barre trovati e stampali
foreach (var Barcode in Result.Barcodes)
{
Console.WriteLine(Barcode.Value);
// Può anche stampare tipo e posizione del barcode
}
}
ImportsIronOcr' Crea un'istanza di IronTesseractPrivateOcr = New IronTesseract()' Configura IronTesseract per leggere i codici a barreOcr.Configuration.ReadBarCodes = True' Utilizza un file immagine come inputUsing input = New OcrInput() ' Aggiunge l'immagine al processo input.AddImage("img/Barcode.png") ' Leggi l'immagine DimResult = Ocr.Read(input) ' Scorri tutti i codici a barre trovati e stampali For EachBarcodeInResult.BarcodesConsole.WriteLine(Barcode.Value) ' Può anche stampare tipo e posizione del barcode NextBarcodeEndUsing
Imports IronOcr
' Crea un'istanza di IronTesseract
Private Ocr = New IronTesseract()
' Configura IronTesseract per leggere i codici a barre
Ocr.Configuration.ReadBarCodes = True
' Utilizza un file immagine come input
Using input = New OcrInput()
' Aggiunge l'immagine al processo
input.AddImage("img/Barcode.png")
' Leggi l'immagine
Dim Result = Ocr.Read(input)
' Scorri tutti i codici a barre trovati e stampali
For Each Barcode In Result.Barcodes
Console.WriteLine(Barcode.Value)
' Può anche stampare tipo e posizione del barcode
Next Barcode
End Using
OCR su aree specifiche delle immagini
Tutti i metodi di scansione e lettura di IronOCR 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;using System.Drawing; // Aggiunta necessaria per utilizzare il rectangle// Crea un'istanza di IronTesseractvarOcr = new IronTesseract();// Imposta la lingua su italianoOcr.Language = OcrLanguage.Italian;// Utilizza un file immagine come input con area specificausing (varInput = new OcrInput()){ // Definisci l'area di contenuto che desideri leggere varContentArea = new Rectangle() { X = 215, Y = 1250, Height = 280, Width = 1335 }; // Aggiunge l'area specificata al processoInput.Add("document.png", ContentArea); // Leggi il documento varResult = Ocr.Read(Input); // Stampa il testo ottenutoConsole.WriteLine(Result.Text);}
using IronOcr;
using System.Drawing; // Aggiunta necessaria per utilizzare il rectangle
// Crea un'istanza di IronTesseract
var Ocr = new IronTesseract();
// Imposta la lingua su italiano
Ocr.Language = OcrLanguage.Italian;
// Utilizza un file immagine come input con area specifica
using (var Input = new OcrInput())
{
// Definisci l'area di contenuto che desideri leggere
var ContentArea = new Rectangle() { X = 215, Y = 1250, Height = 280, Width = 1335 };
// Aggiunge l'area specificata al processo
Input.Add("document.png", ContentArea);
// Leggi il documento
var Result = Ocr.Read(Input);
// Stampa il testo ottenuto
Console.WriteLine(Result.Text);
}
ImportsIronOcrImportsSystem.Drawing' Aggiunta necessaria per utilizzare il rectangle' Crea un'istanza di IronTesseractPrivateOcr = New IronTesseract()' Imposta la lingua su italianoOcr.Language = OcrLanguage.Italian' Utilizza un file immagine come input con area specificaUsingInput = New OcrInput() ' Definisci l'area di contenuto che desideri leggere DimContentArea = New Rectangle() With { .X = 215, .Y = 1250, .Height = 280, .Width = 1335 } ' Aggiunge l'area specificata al processoInput.Add("document.png", ContentArea) ' Leggi il documento DimResult = Ocr.Read(Input) ' Stampa il testo ottenutoConsole.WriteLine(Result.Text)EndUsing
Imports IronOcr
Imports System.Drawing ' Aggiunta necessaria per utilizzare il rectangle
' Crea un'istanza di IronTesseract
Private Ocr = New IronTesseract()
' Imposta la lingua su italiano
Ocr.Language = OcrLanguage.Italian
' Utilizza un file immagine come input con area specifica
Using Input = New OcrInput()
' Definisci l'area di contenuto che desideri leggere
Dim ContentArea = New Rectangle() With {
.X = 215,
.Y = 1250,
.Height = 280,
.Width = 1335
}
' Aggiunge l'area specificata al processo
Input.Add("document.png", ContentArea)
' Leggi il documento
Dim Result = Ocr.Read(Input)
' Stampa il testo ottenuto
Console.WriteLine(Result.Text)
End Using
OCR per scansioni di bassa qualità
La classe IronOCR OcrInput può correggere scansioni che il normale Tesseract non è in grado di leggere.
using IronOcr;// Crea un'istanza di IronTesseractvarOcr = new IronTesseract();// Imposta la lingua su italianoOcr.Language = OcrLanguage.Italian;// Utilizza un'immagine di bassa qualità come inputusing (varInput = new OcrInput(@"img\Potter.LowQuality.tiff")){ // Applica filtri per migliorare la qualità dell'immagineInput.DeNoise(); // Risolve il rumore digitale e la cattiva qualità della scansioneInput.Deskew(); // Risolve la rotazione e la prospettiva // Leggi l'immagine varResult = Ocr.Read(Input); // Stampa il testo ottenutoConsole.WriteLine(Result.Text);}
using IronOcr;
// Crea un'istanza di IronTesseract
var Ocr = new IronTesseract();
// Imposta la lingua su italiano
Ocr.Language = OcrLanguage.Italian;
// Utilizza un'immagine di bassa qualità come input
using (var Input = new OcrInput(@"img\Potter.LowQuality.tiff"))
{
// Applica filtri per migliorare la qualità dell'immagine
Input.DeNoise(); // Risolve il rumore digitale e la cattiva qualità della scansione
Input.Deskew(); // Risolve la rotazione e la prospettiva
// Leggi l'immagine
var Result = Ocr.Read(Input);
// Stampa il testo ottenuto
Console.WriteLine(Result.Text);
}
ImportsIronOcr' Crea un'istanza di IronTesseractPrivateOcr = New IronTesseract()' Imposta la lingua su italianoOcr.Language = OcrLanguage.Italian' Utilizza un'immagine di bassa qualità come inputUsingInput = New OcrInput("img\Potter.LowQuality.tiff") ' Applica filtri per migliorare la qualità dell'immagineInput.DeNoise() ' Risolve il rumore digitale e la cattiva qualità della scansioneInput.Deskew() ' Risolve la rotazione e la prospettiva ' Leggi l'immagine DimResult = Ocr.Read(Input) ' Stampa il testo ottenutoConsole.WriteLine(Result.Text)EndUsing
Imports IronOcr
' Crea un'istanza di IronTesseract
Private Ocr = New IronTesseract()
' Imposta la lingua su italiano
Ocr.Language = OcrLanguage.Italian
' Utilizza un'immagine di bassa qualità come input
Using Input = New OcrInput("img\Potter.LowQuality.tiff")
' Applica filtri per migliorare la qualità dell'immagine
Input.DeNoise() ' Risolve il rumore digitale e la cattiva qualità della scansione
Input.Deskew() ' Risolve la rotazione e la prospettiva
' Leggi l'immagine
Dim Result = Ocr.Read(Input)
' Stampa il testo ottenuto
Console.WriteLine(Result.Text)
End Using
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;// Crea un'istanza di IronTesseractvarOcr = new IronTesseract();// Imposta la lingua su italianoOcr.Language = OcrLanguage.Italian;// Utilizza un insieme di immagini come inputusing (varInput = new OcrInput()){ // Imposta il titolo per l'output PDFInput.Title = "Quarterly Report"; // Aggiunge immagini al processoInput.AddImage("image1.jpeg");Input.AddImage("image2.png");Input.AddImage("image3.gif"); // Leggi il contenuto delle immagini varResult = Ocr.Read(Input); // Salva i risultati come un PDF ricercabileResult.SaveAsSearchablePdf("searchable.pdf");}
using IronOcr;
// Crea un'istanza di IronTesseract
var Ocr = new IronTesseract();
// Imposta la lingua su italiano
Ocr.Language = OcrLanguage.Italian;
// Utilizza un insieme di immagini come input
using (var Input = new OcrInput())
{
// Imposta il titolo per l'output PDF
Input.Title = "Quarterly Report";
// Aggiunge immagini al processo
Input.AddImage("image1.jpeg");
Input.AddImage("image2.png");
Input.AddImage("image3.gif");
// Leggi il contenuto delle immagini
var Result = Ocr.Read(Input);
// Salva i risultati come un PDF ricercabile
Result.SaveAsSearchablePdf("searchable.pdf");
}
ImportsIronOcr' Crea un'istanza di IronTesseractPrivateOcr = New IronTesseract()' Imposta la lingua su italianoOcr.Language = OcrLanguage.Italian' Utilizza un insieme di immagini come inputUsingInput = New OcrInput() ' Imposta il titolo per l'output PDFInput.Title = "Quarterly Report" ' Aggiunge immagini al processoInput.AddImage("image1.jpeg")Input.AddImage("image2.png")Input.AddImage("image3.gif") ' Leggi il contenuto delle immagini DimResult = Ocr.Read(Input) ' Salva i risultati come un PDF ricercabileResult.SaveAsSearchablePdf("searchable.pdf")EndUsing
Imports IronOcr
' Crea un'istanza di IronTesseract
Private Ocr = New IronTesseract()
' Imposta la lingua su italiano
Ocr.Language = OcrLanguage.Italian
' Utilizza un insieme di immagini come input
Using Input = New OcrInput()
' Imposta il titolo per l'output PDF
Input.Title = "Quarterly Report"
' Aggiunge immagini al processo
Input.AddImage("image1.jpeg")
Input.AddImage("image2.png")
Input.AddImage("image3.gif")
' Leggi il contenuto delle immagini
Dim Result = Ocr.Read(Input)
' Salva i risultati come un PDF ricercabile
Result.SaveAsSearchablePdf("searchable.pdf")
End Using
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;// Crea un'istanza di IronTesseractvarOcr = new IronTesseract();// Imposta la lingua su italianoOcr.Language = OcrLanguage.Italian;// Utilizza un file TIFF multipagina come inputusing (varInput = new OcrInput()){ // Aggiunge il TIFF multipagina al processoInput.AddMultiFrameTiff("example.tiff"); // Leggi il TIFF multipagina e salva come PDF ricercabile varResult = Ocr.Read(Input).SaveAsSearchablePdf("searchable.pdf");}
using IronOcr;
// Crea un'istanza di IronTesseract
var Ocr = new IronTesseract();
// Imposta la lingua su italiano
Ocr.Language = OcrLanguage.Italian;
// Utilizza un file TIFF multipagina come input
using (var Input = new OcrInput())
{
// Aggiunge il TIFF multipagina al processo
Input.AddMultiFrameTiff("example.tiff");
// Leggi il TIFF multipagina e salva come PDF ricercabile
var Result = Ocr.Read(Input).SaveAsSearchablePdf("searchable.pdf");
}
ImportsIronOcr' Crea un'istanza di IronTesseractPrivateOcr = New IronTesseract()' Imposta la lingua su italianoOcr.Language = OcrLanguage.Italian' Utilizza un file TIFF multipagina come inputUsingInput = New OcrInput() ' Aggiunge il TIFF multipagina al processoInput.AddMultiFrameTiff("example.tiff") ' Leggi il TIFF multipagina e salva come PDF ricercabile DimResult = Ocr.Read(Input).SaveAsSearchablePdf("searchable.pdf")EndUsing
Imports IronOcr
' Crea un'istanza di IronTesseract
Private Ocr = New IronTesseract()
' Imposta la lingua su italiano
Ocr.Language = OcrLanguage.Italian
' Utilizza un file TIFF multipagina come input
Using Input = New OcrInput()
' Aggiunge il TIFF multipagina al processo
Input.AddMultiFrameTiff("example.tiff")
' Leggi il TIFF multipagina e salva come PDF ricercabile
Dim Result = Ocr.Read(Input).SaveAsSearchablePdf("searchable.pdf")
End Using
Esporta i risultati dell'OCR come HTML
Conversione da immagine OCR a XHTML.
using IronOcr;// Crea un'istanza di IronTesseractvarOcr = new IronTesseract();// Imposta la lingua su italianoOcr.Language = OcrLanguage.Italian;// Utilizza un file immagine come inputusing (varInput = new OcrInput()){ // Imposta il titolo per l'output HTMLInput.Title = "Html Title"; // Aggiunge l'immagine al processoInput.AddImage("image1.jpeg"); // Leggi l'immagine varResult = Ocr.Read(Input); // Salva i risultati come file HTMLResult.SaveAsHocrFile("results.html");}
using IronOcr;
// Crea un'istanza di IronTesseract
var Ocr = new IronTesseract();
// Imposta la lingua su italiano
Ocr.Language = OcrLanguage.Italian;
// Utilizza un file immagine come input
using (var Input = new OcrInput())
{
// Imposta il titolo per l'output HTML
Input.Title = "Html Title";
// Aggiunge l'immagine al processo
Input.AddImage("image1.jpeg");
// Leggi l'immagine
var Result = Ocr.Read(Input);
// Salva i risultati come file HTML
Result.SaveAsHocrFile("results.html");
}
ImportsIronOcr' Crea un'istanza di IronTesseractPrivateOcr = New IronTesseract()' Imposta la lingua su italianoOcr.Language = OcrLanguage.Italian' Utilizza un file immagine come inputUsingInput = New OcrInput() ' Imposta il titolo per l'output HTMLInput.Title = "Html Title" ' Aggiunge l'immagine al processoInput.AddImage("image1.jpeg") ' Leggi l'immagine DimResult = Ocr.Read(Input) ' Salva i risultati come file HTMLResult.SaveAsHocrFile("results.html")EndUsing
Imports IronOcr
' Crea un'istanza di IronTesseract
Private Ocr = New IronTesseract()
' Imposta la lingua su italiano
Ocr.Language = OcrLanguage.Italian
' Utilizza un file immagine come input
Using Input = New OcrInput()
' Imposta il titolo per l'output HTML
Input.Title = "Html Title"
' Aggiunge l'immagine al processo
Input.AddImage("image1.jpeg")
' Leggi l'immagine
Dim Result = Ocr.Read(Input)
' Salva i risultati come file HTML
Result.SaveAsHocrFile("results.html")
End Using
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;// Crea un'istanza di IronTesseractvarOcr = new IronTesseract();// Imposta la lingua su italianoOcr.Language = OcrLanguage.Italian;// Utilizza un'immagine di bassa qualità come inputusing (varInput = new OcrInput(@"LowQuality.jpeg")){ // Applica filtri per migliorare la qualità dell'immagineInput.DeNoise(); // Risolve il rumore digitale e la cattiva qualità della scansioneInput.Deskew(); // Risolve la rotazione e la prospettiva // Leggi l'immagine varResult = Ocr.Read(Input); // Stampa il testo ottenutoConsole.WriteLine(Result.Text);}
using IronOcr;
// Crea un'istanza di IronTesseract
var Ocr = new IronTesseract();
// Imposta la lingua su italiano
Ocr.Language = OcrLanguage.Italian;
// Utilizza un'immagine di bassa qualità come input
using (var Input = new OcrInput(@"LowQuality.jpeg"))
{
// Applica filtri per migliorare la qualità dell'immagine
Input.DeNoise(); // Risolve il rumore digitale e la cattiva qualità della scansione
Input.Deskew(); // Risolve la rotazione e la prospettiva
// Leggi l'immagine
var Result = Ocr.Read(Input);
// Stampa il testo ottenuto
Console.WriteLine(Result.Text);
}
ImportsIronOcr' Crea un'istanza di IronTesseractPrivateOcr = New IronTesseract()' Imposta la lingua su italianoOcr.Language = OcrLanguage.Italian' Utilizza un'immagine di bassa qualità come inputUsingInput = New OcrInput("LowQuality.jpeg") ' Applica filtri per migliorare la qualità dell'immagineInput.DeNoise() ' Risolve il rumore digitale e la cattiva qualità della scansioneInput.Deskew() ' Risolve la rotazione e la prospettiva ' Leggi l'immagine DimResult = Ocr.Read(Input) ' Stampa il testo ottenutoConsole.WriteLine(Result.Text)EndUsing
Imports IronOcr
' Crea un'istanza di IronTesseract
Private Ocr = New IronTesseract()
' Imposta la lingua su italiano
Ocr.Language = OcrLanguage.Italian
' Utilizza un'immagine di bassa qualità come input
Using Input = New OcrInput("LowQuality.jpeg")
' Applica filtri per migliorare la qualità dell'immagine
Input.DeNoise() ' Risolve il rumore digitale e la cattiva qualità della scansione
Input.Deskew() ' Risolve la rotazione e la prospettiva
' Leggi l'immagine
Dim Result = Ocr.Read(Input)
' Stampa il testo ottenuto
Console.WriteLine(Result.Text)
End Using
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 IronOCR 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 IronOCR 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 IronOCR 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 IronOCR 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 IronOCR 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 IronOCR 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.
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.
// Importa la libreria IronOcr// PM> Install IronOcr.Languages.ArabicvarOcr = new IronTesseract();// Imposta la lingua su AraboOcr.Language = OcrLanguage.Arabic;// Utilizza un file immagine come inputusing (var input = new OcrInput()){ // Aggiunge l'immagine al processo OCR input.AddImage("img/arabic.gif"); // Aggiungi filtri immagine se necessario // IronTesseract può leggere ciò che Tesseract convenzionale non può. // Leggi l'immagine varResult = Ocr.Read(input); // La console non può stampare facilmente l'arabo su Windows. // Salviamo invece su disco.Result.SaveAsTextFile("arabic.txt");}
// Importa la libreria IronOcr
// PM> Install IronOcr.Languages.Arabic
var Ocr = new IronTesseract();
// Imposta la lingua su Arabo
Ocr.Language = OcrLanguage.Arabic;
// Utilizza un file immagine come input
using (var input = new OcrInput())
{
// Aggiunge l'immagine al processo OCR
input.AddImage("img/arabic.gif");
// Aggiungi filtri immagine se necessario
// IronTesseract può leggere ciò che Tesseract convenzionale non può.
// Leggi l'immagine
var Result = Ocr.Read(input);
// La console non può stampare facilmente l'arabo su Windows.
// Salviamo invece su disco.
Result.SaveAsTextFile("arabic.txt");
}
' Importa la libreria IronOcr' PM> Install IronOcr.Languages.ArabicDimOcr = New IronTesseract()' Imposta la lingua su AraboOcr.Language = OcrLanguage.Arabic' Utilizza un file immagine come inputUsing input = New OcrInput() ' Aggiunge l'immagine al processo OCR input.AddImage("img/arabic.gif") ' Aggiungi filtri immagine se necessario ' IronTesseract può leggere ciò che Tesseract convenzionale non può. ' Leggi l'immagine DimResult = Ocr.Read(input) ' La console non può stampare facilmente l'arabo su Windows. ' Salviamo invece su disco.Result.SaveAsTextFile("arabic.txt")EndUsing
' Importa la libreria IronOcr
' PM> Install IronOcr.Languages.Arabic
Dim Ocr = New IronTesseract()
' Imposta la lingua su Arabo
Ocr.Language = OcrLanguage.Arabic
' Utilizza un file immagine come input
Using input = New OcrInput()
' Aggiunge l'immagine al processo OCR
input.AddImage("img/arabic.gif")
' Aggiungi filtri immagine se necessario
' IronTesseract può leggere ciò che Tesseract convenzionale non può.
' Leggi l'immagine
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
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.
// Importa la libreria IronOcr// PM> Install IronOcr.Languages.ChineseSimplifiedvarOcr = new IronTesseract();// Imposta la lingua su Cinese semplificatoOcr.Language = OcrLanguage.ChineseSimplified;// Aggiunge una seconda lingua al processo OCROcr.AddSecondaryLanguage(OcrLanguage.Italian);// Possiamo aggiungere un numero qualsiasi di lingueusing (var input = new OcrInput()){ // Aggiunge il documento multilanguage al processo input.Add("multi-language.pdf"); // Leggi il documento varResult = Ocr.Read(input); // Salva i risultati su discoResult.SaveAsTextFile("results.txt");}
// Importa la libreria IronOcr
// PM> Install IronOcr.Languages.ChineseSimplified
var Ocr = new IronTesseract();
// Imposta la lingua su Cinese semplificato
Ocr.Language = OcrLanguage.ChineseSimplified;
// Aggiunge una seconda lingua al processo OCR
Ocr.AddSecondaryLanguage(OcrLanguage.Italian);
// Possiamo aggiungere un numero qualsiasi di lingue
using (var input = new OcrInput())
{
// Aggiunge il documento multilanguage al processo
input.Add("multi-language.pdf");
// Leggi il documento
var Result = Ocr.Read(input);
// Salva i risultati su disco
Result.SaveAsTextFile("results.txt");
}
' Importa la libreria IronOcr' PM> Install IronOcr.Languages.ChineseSimplifiedDimOcr = New IronTesseract()' Imposta la lingua su Cinese semplificatoOcr.Language = OcrLanguage.ChineseSimplified' Aggiunge una seconda lingua al processo OCROcr.AddSecondaryLanguage(OcrLanguage.Italian)' Possiamo aggiungere un numero qualsiasi di lingueUsing input = New OcrInput() ' Aggiunge il documento multilanguage al processo input.Add("multi-language.pdf") ' Leggi il documento DimResult = Ocr.Read(input) ' Salva i risultati su discoResult.SaveAsTextFile("results.txt")EndUsing
' Importa la libreria IronOcr
' PM> Install IronOcr.Languages.ChineseSimplified
Dim Ocr = New IronTesseract()
' Imposta la lingua su Cinese semplificato
Ocr.Language = OcrLanguage.ChineseSimplified
' Aggiunge una seconda lingua al processo OCR
Ocr.AddSecondaryLanguage(OcrLanguage.Italian)
' Possiamo aggiungere un numero qualsiasi di lingue
Using input = New OcrInput()
' Aggiunge il documento multilanguage al processo
input.Add("multi-language.pdf")
' Leggi il documento
Dim Result = Ocr.Read(input)
' Salva i risultati su disco
Result.SaveAsTextFile("results.txt")
End Using
Oggetti risultati OCR dettagliati
IronOCR 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'assiemevarOcr = new IronTesseract();// Imposta la lingua su italianoOcr.Language = OcrLanguage.Italian;// Configura la modalità del motoreOcr.Configuration.EngineMode = TesseractEngineMode.TesseractAndLstm;// Configura per leggere codici a barreOcr.Configuration.ReadBarCodes = true; // Importante// Utilizza un file TIFF come inputusing (varInput = new OcrInput(@"images\sample.tiff")){ // Leggi il documento OcrResultResult = Ocr.Read(Input); // Ottieni le pagine del risultato varPages = Result.Pages; // Ottieni le parole dalla prima pagina varWords = Pages[0].Words; // Ottieni i codici a barre dal risultato varBarcodes = Result.Barcodes; // Esplora qui per trovare un'API massiccia e dettagliata: // - Pagine, Blocchi, Paragrafi, Linee, Parole, Caratteri // - Esportazione di immagini, coordinate dei caratteri, dati statistici}
using IronOcr;
using System.Drawing; // Aggiungi riferimento all'assieme
var Ocr = new IronTesseract();
// Imposta la lingua su italiano
Ocr.Language = OcrLanguage.Italian;
// Configura la modalità del motore
Ocr.Configuration.EngineMode = TesseractEngineMode.TesseractAndLstm;
// Configura per leggere codici a barre
Ocr.Configuration.ReadBarCodes = true; // Importante
// Utilizza un file TIFF come input
using (var Input = new OcrInput(@"images\sample.tiff"))
{
// Leggi il documento
OcrResult Result = Ocr.Read(Input);
// Ottieni le pagine del risultato
var Pages = Result.Pages;
// Ottieni le parole dalla prima pagina
var Words = Pages[0].Words;
// Ottieni i codici a barre dal risultato
var Barcodes = Result.Barcodes;
// Esplora qui per trovare un'API massiccia e dettagliata:
// - Pagine, Blocchi, Paragrafi, Linee, Parole, Caratteri
// - Esportazione di immagini, coordinate dei caratteri, dati statistici
}
ImportsIronOcrImportsSystem.Drawing' Aggiungi riferimento all'assiemePrivateOcr = New IronTesseract()' Imposta la lingua su italianoOcr.Language = OcrLanguage.Italian' Configura la modalità del motoreOcr.Configuration.EngineMode = TesseractEngineMode.TesseractAndLstm' Configura per leggere codici a barreOcr.Configuration.ReadBarCodes = True ' Importante' Utilizza un file TIFF come inputUsingInput = New OcrInput("images\sample.tiff") ' Leggi il documento DimResultAsOcrResult = Ocr.Read(Input) ' Ottieni le pagine del risultato DimPages = Result.Pages ' Ottieni le parole dalla prima pagina DimWords = Pages(0).Words ' Ottieni i codici a barre dal risultato DimBarcodes = Result.Barcodes ' Esplora qui per trovare un'API massiccia e dettagliata: ' - Pagine, Blocchi, Paragrafi, Linee, Parole, Caratteri ' - Esportazione di immagini, coordinate dei caratteri, dati statisticiEndUsing
Imports IronOcr
Imports System.Drawing ' Aggiungi riferimento all'assieme
Private Ocr = New IronTesseract()
' Imposta la lingua su italiano
Ocr.Language = OcrLanguage.Italian
' Configura la modalità del motore
Ocr.Configuration.EngineMode = TesseractEngineMode.TesseractAndLstm
' Configura per leggere codici a barre
Ocr.Configuration.ReadBarCodes = True ' Importante
' Utilizza un file TIFF come input
Using Input = New OcrInput("images\sample.tiff")
' Leggi il documento
Dim Result As OcrResult = Ocr.Read(Input)
' Ottieni le pagine del risultato
Dim Pages = Result.Pages
' Ottieni le parole dalla prima pagina
Dim Words = Pages(0).Words
' Ottieni i codici a barre dal risultato
Dim Barcodes = Result.Barcodes
' Esplora qui per trovare un'API massiccia e dettagliata:
' - Pagine, Blocchi, Paragrafi, Linee, Parole, Caratteri
' - Esportazione di immagini, coordinate dei caratteri, dati statistici
End Using
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 IronOCR può essere utilizzato e possono mostrare le sfumature di come ottenere il meglio da questa libreria.
Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapılandırılmış, görsel olarak çekici kılavuzlar oluşturmayı seviyor.