Correzione dell'inclinazione nell'elaborazione delle immagini utilizzando C#

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:

  1. API di elaborazione delle immagini per la correzione dell’inclinazione C#
  2. Rileva angolo di inclinazione dell’immagine
  3. Correzione automatica dell’inclinazione
  4. Correzione automatica dell’inclinazione con filtro di preelaborazione
  5. Riconosci il testo dell’immagine con la correzione automatica dell’inclinazione
  6. Correzione manuale dell’inclinazione
  7. 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:

  1. Innanzitutto, crea un’istanza della classe AsposeOCR.
  2. Chiama il metodo CalculateSkew(). Prende il percorso dell’immagine come argomento.
  3. 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}°");
Rileva l'angolo di inclinazione dell'immagine in C#

L’immagine di origine.

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:

  1. Innanzitutto, crea un’istanza della classe AsposeOCR.
  2. Inizializzare quindi un oggetto della classe RecognitionSettings.
  3. Quindi, imposta la proprietà AutoSkew su true.
  4. Successivamente, chiama il metodo RecognizeImage() con l’immagine di origine e l’oggetto RecognitionSettings.
  5. 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:

  1. Innanzitutto, crea un’istanza della classe AsposeOCR.
  2. Quindi, inizializza un oggetto della classe PreprocessingFilter.
  3. Quindi, aggiungi il filtro AutoSkew().
  4. Successivamente, chiama il metodo PreprocessImage() per applicare il filtro all’immagine di origine.
  5. 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);
    }
}
Correzione automatica dell'inclinazione con filtro in C#

Correzione automatica dell’inclinazione con filtro in C#.

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:

  1. Innanzitutto, crea un’istanza della classe AsposeOCR.
  2. Quindi, inizializza un oggetto della classe PreprocessingFilter.
  3. Quindi, aggiungi il filtro AutoSkew().
  4. Nel frattempo, crea un’istanza della classe RecognitionSettings.
  5. Quindi, assegna i filtri alla proprietà PreprocessingFilters.
  6. Successivamente, chiama il metodo RecognizeImage() con l’immagine di origine e l’oggetto RecognitionSettings.
  7. 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:

  1. Innanzitutto, crea un’istanza della classe AsposeOCR.
  2. Inizializzare quindi un oggetto della classe RecognitionSettings.
  3. Quindi, imposta la proprietà SkewAngle.
  4. Successivamente, chiama il metodo RecognizeImage() con l’immagine di origine e l’oggetto RecognitionSettings.
  5. 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 Ruota.

Si prega di seguire i passaggi indicati di seguito per applicare manualmente la correzione dell’inclinazione:

  1. Innanzitutto, crea un’istanza della classe AsposeOCR.
  2. Quindi, inizializza un oggetto della classe PreprocessingFilter.
  3. Quindi, aggiungi il filtro AutoSkew().
  4. Nel frattempo, crea un’istanza della classe RecognitionSettings.
  5. Quindi, assegna i filtri alla proprietà PreprocessingFilters.
  6. Successivamente, chiama il metodo RecognizeImage() con l’immagine di origine e l’oggetto RecognitionSettings.
  7. 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.

Guarda anche