Correzione dell'inclinazione dell'immagine in Java

Nella computer grafica e nell’elaborazione delle immagini, l’inclinazione dell’immagine è una deviazione angolare delle immagini rettangolari. È anche noto come inclinazione o distorsione dell’immagine. Il termine “inclinazione” si riferisce all’angolo di un’immagine. L’inclinazione dell’immagine si verifica quando la posizione visiva degli elementi in un’immagine non è uniforme. L’inclinazione può comportare che tutti gli angoli siano ad angolo o addirittura spostati in modo che un lato sia più lungo dell’altro. Tali foto o immagini scansionate possono apparire distorte e poco attraenti. In questo articolo impareremo come rilevare l’inclinazione dell’immagine a livello di codice. Impareremo anche come eseguire la correzione dell’inclinazione dell’immagine in Java.

In questo articolo verranno trattati i seguenti argomenti:

  1. API Java per la correzione dell’inclinazione dell’immagine
  2. Rileva angolo di inclinazione dell’immagine
  3. Rileva l’angolo di inclinazione dell’immagine dell’immagine live
  4. Correzione automatica dell’inclinazione dell’immagine
  5. Riconosci il testo dell’immagine con la correzione automatica dell’inclinazione
  6. Correzione manuale dell’inclinazione dell’immagine
  7. Riconosci il testo dell’immagine con la correzione manuale dell’inclinazione dell’immagine

API Java per la correzione dell’inclinazione dell’immagine

Per il rilevamento e le correzioni dell’inclinazione dell’immagine, utilizzeremo l’API Aspose.OCR for Java. Consente di eseguire l’OCR su immagini scansionate, foto di smartphone, schermate, aree di un’immagine e PDF scansionati. L’API consente inoltre di salvare i risultati di testo riconosciuti nei formati di documenti più diffusi.

La classe AsposeOCR dell’API è la classe principale per il riconoscimento del testo dalle immagini. Fornisce il metodo CalcSkewImage(string) che calcola l’angolo di inclinazione dell’immagine sorgente fornita. Fornisce inoltre un altro metodo CalcSkewImageFromUri(String uri) che calcola l’angolo di inclinazione di un’immagine fornita dal collegamento URI. La classe PreprocessingFilter è la classe base per i comandi di elaborazione delle immagini. La classe RecognitionSettings dell’API fornisce le impostazioni per il riconoscimento delle immagini e contiene elementi che consentono di personalizzare il processo di riconoscimento.

Si prega di scaricare il JAR dell’API o aggiungere la seguente configurazione pom.xml in un’applicazione Java basata su Maven.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://releases.aspose.com/java/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-ocr</artifactId>
    <version>22.9</version>
</dependency>

Rileva l’angolo di inclinazione dell’immagine in Java

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 CalcSkewImage(). 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 Java.

// Questo esempio di codice mostra come calcolare l'angolo di inclinazione di un'immagine.
// Crea un'istanza di AsposeOcr
AsposeOCR api = new AsposeOCR();

// Calcola l'angolo di inclinazione
double skew = api.CalcSkewImage("C:\\Files\\source.png");

// Mostra angolo
System.out.println("Skew angle: " + skew + "°.");

Rileva l’angolo di inclinazione dell’immagine dall’URL dell’immagine live

Possiamo anche rilevare l’angolo di inclinazione di un’immagine da un URL attivo seguendo i passaggi indicati di seguito:

  1. Innanzitutto, crea un’istanza della classe AsposeOCR.
  2. Chiama il metodo CalcSkewImageFromUri(). 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 Java.

// Questo esempio di codice mostra come calcolare l'angolo di inclinazione di un'immagine.
// Crea un'istanza di AsposeOcr
AsposeOCR api = new AsposeOCR();

// Calcola l'angolo di inclinazione
double skew = api.CalcSkewImageFromUri("https://www.aspose.com/sample-ocr-page.png");

// Mostra angolo
System.out.println("Skew angle: " + skew + "°.");

Correzione automatica dell’inclinazione dell’immagine in Java

Possiamo correggere automaticamente la correzione dell’inclinazione 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. 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 il filtro di preelaborazione della correzione dell’inclinazione automatica in Java.

// 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 api = new AsposeOCR();

// Aggiungi il filtro di allineamento
PreprocessingFilter filters = new PreprocessingFilter();
filters.add(PreprocessingFilter.AutoSkew());

// Salva l'immagine preelaborata su file
BufferedImage imageRes = api.PreprocessImage("C:\\Files\\source.png", filters);
File outputSource = new File("C:\\Files\\result.png");
ImageIO.write(imageRes, "png", outputSource);

Riconosci il testo dell’immagine con la correzione automatica dell’inclinazione in Java

Possiamo applicare la correzione automatica dell’inclinazione e riconoscere il testo seguendo i passaggi indicati di seguito:

  1. Innanzitutto, crea un’istanza della classe AsposeOCR.
  2. Inizializzare quindi un oggetto della classe RecognitionSettings.
  3. Quindi, chiama setAutoSkew con true come argomento.
  4. Successivamente, chiama il metodo RecognizePage() 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 e riconoscere il testo in Java.

// Questo esempio di codice mostra come applicare la correzione automatica dell'inclinazione.
// Crea un'istanza di AsposeOcr
AsposeOCR api = new AsposeOCR();

// Abilita il raddrizzamento automatico nelle impostazioni di riconoscimento
RecognitionSettings recognitionSettings = new RecognitionSettings();
recognitionSettings.setAutoSkew(true);

// Riconosci l'immagine
RecognitionResult result = api.RecognizePage("C:\\Files\\source.png", recognitionSettings);

// Mostra testo riconosciuto
System.out.println(result.recognitionText);

Correzione manuale dell’inclinazione dell’immagine in Java

Possiamo definire manualmente l’angolo di inclinazione ruotando l’immagine al grado specificato 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 l’angolo di rotazione usando il filtro del metodo Rotate().
  4. Quindi, crea un’istanza della classe RecognitionSettings.
  5. Successivamente, chiama il metodo PreprocessImage() per applicare il filtro all’immagine di origine.
  6. Infine, mostra il testo riconosciuto.

Il codice di esempio seguente mostra come applicare la correzione manuale dell’inclinazione con il filtro di preelaborazione in Java.

// Questo esempio di codice mostra come applicare la correzione manuale dell'inclinazione.
// Crea un'istanza di AsposeOcr
AsposeOCR api = new AsposeOCR();

// Aggiungi il filtro di allineamento
PreprocessingFilter filters = new PreprocessingFilter();
filters.add(PreprocessingFilter.Rotate(-90));

// Salva l'immagine preelaborata su file
BufferedImage imageRes = api.PreprocessImage("C:\\Files\\source.png", filters);
File outputSource = new File("C:\\Files\\result.png");
ImageIO.write(imageRes, "png", outputSource);

Riconosci il testo dell’immagine con la correzione manuale dell’inclinazione dell’immagine in Java

Possiamo definire manualmente l’angolo di inclinazione e riconoscere il testo seguendo i passaggi indicati di seguito:

  1. Innanzitutto, crea un’istanza della classe AsposeOCR.
  2. Inizializzare quindi un oggetto della classe RecognitionSettings.
  3. Quindi, chiama il metodo setSkew().
  4. Successivamente, chiama il metodo RecognizePage() 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 e riconoscere il testo dell’immagine in Java.

// Questo esempio di codice mostra come applicare la correzione manuale dell'inclinazione.
// Crea un'istanza di AsposeOcr
AsposeOCR recognitionEngine = new AsposeOCR();

// Manuale set the skew angle
RecognitionSettings recognitionSettings = new RecognitionSettings();
recognitionSettings.setSkew(6);

// Riconosci l'immagine
RecognitionResult result = recognitionEngine.RecognizePage("C:\\Files\\source.png", recognitionSettings);

// Mostra testo riconosciuto
System.out.println(result.recognitionText);

Ottieni una licenza di valutazione gratuita

Puoi ottenere una licenza temporanea gratuita per provare Aspose.OCR per Java 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;
  • salvare le immagini corrette utilizzando Java.

Oltre alla correzione dell’inclinazione dell’immagine in Java, puoi saperne di più su Aspose.OCR per l’API Java usando documentazione. In caso di ambiguità, non esitare a contattarci sul nostro forum di supporto gratuito.

Guarda anche