Korekce zkosení obrazu v Javě

V počítačové grafice a zpracování obrazu je zkosení obrazu úhlová odchylka pravoúhlých obrazů. To je také známé jako naklonění nebo zkreslení obrazu. Termín „zešikmení“ označuje úhel obrazu. Ke zkosení obrazu dochází, když vizuální poloha prvků v obraze není jednotná. Zkosení může způsobit, že všechny rohy budou pod úhlem nebo dokonce posunuty tak, že jedna strana je delší než druhá. Takové fotografie nebo naskenované obrázky mohou vypadat zkresleně a nepřitažlivě. V tomto článku se naučíme, jak programově detekovat zkreslení obrazu. Naučíme se také, jak provádět korekci zkosení obrazu v Javě.

V tomto článku se budou zabývat následujícími tématy:

  1. Java API pro korekci zkosení obrázku
  2. Detekce úhlu zkosení obrázku
  3. Detekce úhlu zkosení živého obrazu
  4. Automatická korekce zkosení obrázku
  5. Rozpoznat text obrázku s automatickou korekcí zkosení
  6. Ruční korekce zkosení obrázku
  7. Rozpoznat text obrázku pomocí ruční korekce zkosení obrázku

Java API pro korekci zkreslení obrazu

Pro detekci zkreslení obrazu a opravy budeme používat Aspose.OCR for Java API. Umožňuje provádět OCR na naskenovaných obrázcích, fotografiích smartphonu, snímcích obrazovky, oblastech obrázku a naskenovaných souborech PDF. Rozhraní API také umožňuje ukládání rozpoznaných textových výsledků v oblíbených formátech dokumentů.

Třída AsposeOCR API je hlavní třídou pro rozpoznávání textu z obrázků. Poskytuje metodu CalcSkewImage(string), která vypočítá úhel zkosení poskytnutého zdrojového obrázku. Poskytuje také další metodu CalcSkewImageFromUri(String uri), která vypočítává úhel zkosení obrázku poskytnutého odkazem URI. Třída PreprocessingFilter je základní třídou pro příkazy zpracování obrazu. Třída RecognitionSettings rozhraní API poskytuje nastavení pro rozpoznávání obrazu a obsahuje prvky, které umožňují přizpůsobení procesu rozpoznávání.

Prosím buď stáhněte si JAR API, nebo přidejte následující konfiguraci pom.xml do Java aplikace založené na 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>

Detekce úhlu zkosení obrázku v Javě

Úhel zkosení textového obrázku můžeme snadno zjistit podle následujících kroků:

  1. Nejprve vytvořte instanci třídy AsposeOCR.
  2. Zavolejte metodu CalcSkewImage(). Jako argument bere cestu obrazu.
  3. Nakonec ukažte vypočítaný úhel zkosení.

Následující ukázkový kód ukazuje, jak vypočítat úhel zkosení obrázku v Javě.

// Tento příklad kódu ukazuje, jak vypočítat úhel zkosení obrázku.
// Vytvořte instanci AsposeOcr
AsposeOCR api = new AsposeOCR();

// Vypočítejte úhel zkosení
double skew = api.CalcSkewImage("C:\\Files\\source.png");

// Zobrazit úhel
System.out.println("Skew angle: " + skew + "°.");

Zjistit úhel zkosení obrázku z adresy URL živého obrázku

Úhel zkosení obrázku můžeme také zjistit ze živé adresy URL podle následujících kroků:

  1. Nejprve vytvořte instanci třídy AsposeOCR.
  2. Zavolejte metodu CalcSkewImageFromUri(). Jako argument bere cestu obrazu.
  3. Nakonec ukažte vypočítaný úhel zkosení.

Následující ukázkový kód ukazuje, jak vypočítat úhel zkosení obrázku v Javě.

// Tento příklad kódu ukazuje, jak vypočítat úhel zkosení obrázku.
// Vytvořte instanci AsposeOcr
AsposeOCR api = new AsposeOCR();

// Vypočítejte úhel zkosení
double skew = api.CalcSkewImageFromUri("https://www.aspose.com/sample-ocr-page.png");

// Zobrazit úhel
System.out.println("Skew angle: " + skew + "°.");

Automatická korekce zkosení obrazu v Javě

Opravu zkosení obrazu můžeme automaticky opravit podle následujících kroků:

  1. Nejprve vytvořte instanci třídy AsposeOCR.
  2. Dále inicializujte objekt třídy PreprocessingFilter.
  3. Potom přidejte filtr AutoSkew().
  4. Poté zavolejte metodu PreprocessImage() a aplikujte filtr na zdrojový obrázek.
  5. Nakonec opravený obrázek uložte.

Následující ukázkový kód ukazuje, jak použít filtr předběžného zpracování automatické korekce zkosení v Javě.

// Tento příklad kódu ukazuje, jak použít automatickou korekci zkosení pomocí filtru předběžného zpracování a uložit opravený obrázek.
// Vytvořte instanci AsposeOcr
AsposeOCR api = new AsposeOCR();

// Přidejte filtr vyrovnání sklonu
PreprocessingFilter filters = new PreprocessingFilter();
filters.add(PreprocessingFilter.AutoSkew());

// Uložte předzpracovaný obrázek do souboru
BufferedImage imageRes = api.PreprocessImage("C:\\Files\\source.png", filters);
File outputSource = new File("C:\\Files\\result.png");
ImageIO.write(imageRes, "png", outputSource);

Rozpoznejte text obrázku pomocí automatické korekce zkosení v Javě

Můžeme použít automatickou korekci zkosení a rozpoznat text podle následujících kroků:

  1. Nejprve vytvořte instanci třídy AsposeOCR.
  2. Dále inicializujte objekt třídy RecognitionSettings.
  3. Potom zavolejte setAutoSkew s hodnotou true jako argument.
  4. Poté zavolejte metodu RecognizePage() se zdrojovým obrázkem a objektem RecognitionSettings.
  5. Nakonec zobrazte rozpoznaný text.

Následující ukázkový kód ukazuje, jak použít automatickou korekci zkosení a rozpoznat text v Javě.

// Tento příklad kódu ukazuje, jak použít automatickou korekci zkosení.
// Vytvořte instanci AsposeOcr
AsposeOCR api = new AsposeOCR();

// Povolte automatické vyrovnání v nastavení rozpoznávání
RecognitionSettings recognitionSettings = new RecognitionSettings();
recognitionSettings.setAutoSkew(true);

// Rozpoznat obrázek
RecognitionResult result = api.RecognizePage("C:\\Files\\source.png", recognitionSettings);

// Zobrazit rozpoznaný text
System.out.println(result.recognitionText);

Manuální korekce zkosení obrazu v Javě

Úhel zkosení můžeme definovat ručně otočením obrázku na určený stupeň podle následujících kroků:

  1. Nejprve vytvořte instanci třídy AsposeOCR.
  2. Dále inicializujte objekt třídy PreprocessingFilter.
  3. Poté přidejte úhel otočení pomocí filtru metody Rotate().
  4. Dále vytvořte instanci třídy RecognitionSettings.
  5. Poté zavolejte metodu PreprocessImage() a aplikujte filtr na zdrojový obrázek.
  6. Nakonec zobrazte rozpoznaný text.

Následující ukázkový kód ukazuje, jak použít ruční korekci zkosení s filtrem předběžného zpracování v Javě.

// Tento příklad kódu ukazuje, jak použít ruční korekci zkosení.
// Vytvořte instanci AsposeOcr
AsposeOCR api = new AsposeOCR();

// Přidejte filtr proti zešikmení
PreprocessingFilter filters = new PreprocessingFilter();
filters.add(PreprocessingFilter.Rotate(-90));

// Uložte předzpracovaný obrázek do souboru
BufferedImage imageRes = api.PreprocessImage("C:\\Files\\source.png", filters);
File outputSource = new File("C:\\Files\\result.png");
ImageIO.write(imageRes, "png", outputSource);

Rozpoznejte text obrázku pomocí ruční korekce zkosení obrázku v Javě

Úhel zkosení můžeme definovat ručně a rozpoznat text podle následujících kroků:

  1. Nejprve vytvořte instanci třídy AsposeOCR.
  2. Dále inicializujte objekt třídy RecognitionSettings.
  3. Poté zavolejte metodu setSkew().
  4. Poté zavolejte metodu RecognizePage() se zdrojovým obrázkem a objektem RecognitionSettings.
  5. Nakonec zobrazte rozpoznaný text.

Následující ukázkový kód ukazuje, jak použít ruční korekci zkosení a rozpoznat text obrázku v Javě.

// Tento příklad kódu ukazuje, jak použít ruční korekci zkosení.
// Vytvořte instanci AsposeOcr
AsposeOCR recognitionEngine = new AsposeOCR();

// Ručně nastavte úhel zkosení
RecognitionSettings recognitionSettings = new RecognitionSettings();
recognitionSettings.setSkew(6);

// Rozpoznat obrázek
RecognitionResult result = recognitionEngine.RecognizePage("C:\\Files\\source.png", recognitionSettings);

// Zobrazit výsledky
System.out.println(result.recognitionText);

Získejte bezplatnou zkušební licenci

Můžete získat bezplatnou dočasnou licenci a vyzkoušet Aspose.OCR pro Javu bez omezení hodnocení.

Závěr

V tomto článku jsme se naučili, jak:

  • provádět OCR a rozpoznávat text na obrázcích;
  • používat filtry a zpracovávat obrázky;
  • používat nastavení rozpoznávání;
  • uložit opravené obrázky pomocí Java.

Kromě opravy zkosení obrazu v Javě se můžete dozvědět více o Aspose.OCR pro Java API pomocí dokumentace. V případě jakýchkoliv nejasností nás prosím neváhejte kontaktovat na našem bezplatném fóru podpory.

Viz také