La correzione dell’inclinazione nell’elaborazione delle immagini è un compito di ottimizzazione delle immagini. Nella visione artificiale, dobbiamo posizionare correttamente le nostre telecamere e sensori, ma questo spesso porta a grandi distorsioni. Allo stesso modo, quando si esegue la scansione con gli scanner, a volte l’allineamento è quasi impossibile. A causa di ciò, le immagini e le fotografie scansionate presentano una leggera inclinazione (inclinazione). In questo articolo impareremo come eseguire la correzione dell’inclinazione nell’elaborazione delle immagini utilizzando C#.
In questo articolo verranno trattati i seguenti argomenti:
- API di elaborazione delle immagini per la correzione dell’inclinazione C#
- Rileva angolo di inclinazione dell’immagine
- Correzione automatica dell’inclinazione
- Correzione automatica dell’inclinazione con filtro di preelaborazione
- Riconosci il testo dell’immagine con la correzione automatica dell’inclinazione
- Correzione manuale dell’inclinazione
- Correzione manuale dell’inclinazione con filtro di preelaborazione
API di elaborazione delle immagini per la correzione dell’inclinazione C#
Per le correzioni dell’inclinazione, utilizzeremo l’API Aspose.OCR for .NET. L’API consente di eseguire l’OCR su immagini scansionate, foto di smartphone, schermate, aree di un’immagine e PDF scansionati. Consente di salvare i risultati di testo riconosciuti in formati di documenti popolari.
Si prega di scaricare la DLL dell’API o installarla utilizzando NuGet.
PM> Install-Package Aspose.OCR
Rileva l’angolo di inclinazione dell’immagine in C#
L’API fornisce il metodo CalculateSkew(string) che calcola l’angolo di inclinazione dell’immagine sorgente fornita. Possiamo facilmente rilevare l’angolo di inclinazione di un’immagine di testo seguendo i passaggi indicati di seguito:
- Innanzitutto, crea un’istanza della classe AsposeOCR.
- Chiama il metodo CalculateSkew(). Prende il percorso dell’immagine come argomento.
- Infine, mostra l’angolo di inclinazione calcolato.
Il codice di esempio seguente mostra come calcolare l’angolo di inclinazione di un’immagine in C#.
// Questo esempio di codice mostra come calcolare l'angolo di inclinazione di un'immagine.
// Crea un'istanza di AsposeOcr
AsposeOcr recognitionEngine = new AsposeOcr();
// Calcola l'angolo di inclinazione
float skew = recognitionEngine.CalculateSkew("C:\\Files\\OCR\\source.png");
// Mostra angolo
Console.WriteLine($"Skew angle: {skew:N1}°");
Skew angle: 5.8°
Correzione automatica dell’inclinazione in C#
Per la correzione automatica dell’inclinazione, possiamo abilitare la proprietà RecognitionSettings.AutoSkew nelle impostazioni di riconoscimento seguendo i passaggi indicati di seguito:
- Innanzitutto, crea un’istanza della classe AsposeOCR.
- Inizializzare quindi un oggetto della classe RecognitionSettings.
- Quindi, imposta la proprietà AutoSkew su true.
- Successivamente, chiama il metodo RecognizeImage() con l’immagine di origine e l’oggetto RecognitionSettings.
- Infine, mostra il testo riconosciuto.
Il codice di esempio seguente mostra come applicare la correzione automatica dell’inclinazione in C#.
// Questo esempio di codice mostra come applicare la correzione automatica dell'inclinazione.
// Crea un'istanza di AsposeOcr
AsposeOcr recognitionEngine = new AsposeOcr();
// Abilita il raddrizzamento automatico nelle impostazioni di riconoscimento
RecognitionSettings recognitionSettings = new RecognitionSettings();
recognitionSettings.AutoSkew = true;
// Riconosci l'immagine
RecognitionResult result = recognitionEngine.RecognizeImage("C:\\Files\\OCR\\source.png", recognitionSettings);
// Mostra testo riconosciuto
Console.WriteLine(result.RecognitionText);
Correzione automatica dell’inclinazione con filtro di preelaborazione in C#
In alternativa, possiamo applicare il filtro di preelaborazione AutoSkew per la correzione automatica dell’inclinazione e salvare l’immagine corretta seguendo i passaggi indicati di seguito:
- Innanzitutto, crea un’istanza della classe AsposeOCR.
- Quindi, inizializza un oggetto della classe PreprocessingFilter.
- Quindi, aggiungi il filtro AutoSkew().
- Successivamente, chiama il metodo PreprocessImage() per applicare il filtro all’immagine di origine.
- Infine, salva l’immagine corretta.
Il codice di esempio seguente mostra come applicare la correzione automatica dell’inclinazione con il filtro di preelaborazione in C#.
// Questo esempio di codice mostra come applicare la correzione automatica dell'inclinazione usando il filtro di preelaborazione e salvare l'immagine corretta.
// Crea un'istanza di AsposeOcr
AsposeOcr recognitionEngine = new AsposeOcr();
// Aggiungi il filtro di allineamento
Aspose.OCR.Models.PreprocessingFilters.PreprocessingFilter filters = new Aspose.OCR.Models.PreprocessingFilters.PreprocessingFilter();
filters.Add(Aspose.OCR.Models.PreprocessingFilters.PreprocessingFilter.AutoSkew());
// Salva l'immagine preelaborata su file
using (MemoryStream ms = recognitionEngine.PreprocessImage("C:\\Files\\OCR\\source.png", filters))
{
using (FileStream fs = new FileStream("C:\\Files\\OCR\\result.png", FileMode.Create, FileAccess.Write))
{
ms.WriteTo(fs);
}
}
Riconosci il testo dell’immagine con la correzione automatica dell’inclinazione in C#
Possiamo applicare il filtro di preelaborazione AutoSkew e riconoscere il testo dell’immagine seguendo i passaggi indicati di seguito:
- Innanzitutto, crea un’istanza della classe AsposeOCR.
- Quindi, inizializza un oggetto della classe PreprocessingFilter.
- Quindi, aggiungi il filtro AutoSkew().
- Nel frattempo, crea un’istanza della classe RecognitionSettings.
- Quindi, assegna i filtri alla proprietà PreprocessingFilters.
- Successivamente, chiama il metodo RecognizeImage() con l’immagine di origine e l’oggetto RecognitionSettings.
- Infine, mostra il testo riconosciuto.
Il codice di esempio seguente mostra come applicare la correzione automatica dell’inclinazione e riconoscere il testo in C#.
// Questo esempio di codice mostra come applicare la correzione automatica dell'inclinazione usando il filtro di preelaborazione e riconoscere l'immagine.
// Crea un'istanza di AsposeOcr
AsposeOcr recognitionEngine = new AsposeOcr();
// Aggiungi il filtro di allineamento
Aspose.OCR.Models.PreprocessingFilters.PreprocessingFilter filters = new Aspose.OCR.Models.PreprocessingFilters.PreprocessingFilter();
filters.Add(Aspose.OCR.Models.PreprocessingFilters.PreprocessingFilter.AutoSkew());
// Aggiungi filtri di preelaborazione alle impostazioni di riconoscimento
RecognitionSettings recognitionSettings = new RecognitionSettings();
recognitionSettings.PreprocessingFilters = filters;
// Riconosci l'immagine
RecognitionResult result = recognitionEngine.RecognizeImage("C:\\Files\\OCR\\source.png", recognitionSettings);
// Mostra i risultati
Console.WriteLine(result.RecognitionText);
Correzione manuale dell’inclinazione in C#
Per la correzione manuale dell’inclinazione, possiamo definire manualmente l’angolo di inclinazione specificando la proprietà SkewAngle nelle impostazioni di riconoscimento seguendo i passaggi indicati di seguito:
- Innanzitutto, crea un’istanza della classe AsposeOCR.
- Inizializzare quindi un oggetto della classe RecognitionSettings.
- Quindi, imposta la proprietà SkewAngle.
- Successivamente, chiama il metodo RecognizeImage() con l’immagine di origine e l’oggetto RecognitionSettings.
- Infine, mostra il testo riconosciuto.
Il codice di esempio seguente mostra come applicare la correzione manuale dell’inclinazione in C#.
// Questo esempio di codice mostra come applicare la correzione manuale dell'inclinazione.
// Crea un'istanza di AsposeOcr
AsposeOcr recognitionEngine = new AsposeOcr();
// Impostare manualmente l'angolo di inclinazione
RecognitionSettings recognitionSettings = new RecognitionSettings();
recognitionSettings.SkewAngle = 6;
// Riconosci l'immagine
RecognitionResult result = recognitionEngine.RecognizeImage("C:\\Files\\OCR\\source.png", recognitionSettings);
// Visualizza i risultati
Console.WriteLine(result.RecognitionText);
Correzione manuale dell’inclinazione con filtro di preelaborazione in C#
Possiamo anche definire manualmente l’angolo di inclinazione ruotando l’immagine al grado specificato utilizzando il filtro di preelaborazione Rotate.
Si prega di seguire i passaggi indicati di seguito per applicare manualmente la correzione dell’inclinazione:
- Innanzitutto, crea un’istanza della classe AsposeOCR.
- Quindi, inizializza un oggetto della classe PreprocessingFilter.
- Quindi, aggiungi il filtro Rotate().
- Nel frattempo, crea un’istanza della classe RecognitionSettings.
- Quindi, assegna i filtri alla proprietà PreprocessingFilters.
- Successivamente, chiama il metodo RecognizeImage() con l’immagine di origine e l’oggetto RecognitionSettings.
- Infine, mostra il testo riconosciuto.
Il codice di esempio seguente mostra come applicare la correzione manuale dell’inclinazione con il filtro di preelaborazione in C#.
// Questo esempio di codice mostra come applicare la correzione manuale dell'inclinazione e riconoscere il testo dell'immagine.
// Crea un'istanza di AsposeOcr
AsposeOcr recognitionEngine = new AsposeOcr();
// Ruota l'immagine di 90 gradi in senso antiorario
Aspose.OCR.Models.PreprocessingFilters.PreprocessingFilter filters = new Aspose.OCR.Models.PreprocessingFilters.PreprocessingFilter();
filters.Add(Aspose.OCR.Models.PreprocessingFilters.PreprocessingFilter.Rotate(-90));
// Salva l'immagine preelaborata su file per scopi di debug
using (MemoryStream ms = recognitionEngine.PreprocessImage("C:\\Files\\OCR\\source.png", filters))
{
using (FileStream fs = new FileStream("C:\\Files\\OCR\\result.png", FileMode.Create, FileAccess.Write))
{
ms.WriteTo(fs);
}
}
// Aggiungi filtri di preelaborazione alle impostazioni di riconoscimento
RecognitionSettings recognitionSettings = new RecognitionSettings();
recognitionSettings.PreprocessingFilters = filters;
// Riconosci l'immagine
RecognitionResult result = recognitionEngine.RecognizeImage("C:\\Files\\OCR\\source.png", recognitionSettings);
// Mostra i risultati
Console.WriteLine(result.RecognitionText);
Ottieni una licenza di valutazione gratuita
Puoi ottenere una licenza temporanea gratuita per provare Aspose.OCR per .NET senza limitazioni di valutazione.
Conclusione
In questo articolo abbiamo imparato a:
- eseguire l’OCR e riconoscere il testo sulle immagini;
- applicare filtri ed elaborare immagini;
- utilizzare le impostazioni di riconoscimento;
- salva le immagini corrette usando C#.
Oltre alla correzione dell’inclinazione nell’elaborazione delle immagini utilizzando C#, puoi saperne di più su Aspose.OCR per .NET API utilizzando la documentazione. In caso di ambiguità, non esitare a contattarci sul nostro forum di supporto gratuito.