Korekta pochylenia obrazu w Javie

W grafice komputerowej i przetwarzaniu obrazu pochylenie obrazu to odchylenie kątowe prostokątnych obrazów. Jest to również znane jako przechylenie lub zniekształcenie obrazu. Termin „pochylenie” odnosi się do kąta obrazu. Pochylenie obrazu występuje, gdy wizualna pozycja elementów na obrazie nie jest jednolita. Pochylenie może spowodować, że dowolne rogi będą ustawione pod kątem, a nawet przesunięte, tak że jedna strona będzie dłuższa od drugiej. Takie zdjęcia lub zeskanowane obrazy mogą wyglądać na zniekształcone i nieatrakcyjne. W tym artykule dowiemy się, jak programowo wykrywać przekrzywienie obrazu. Dowiemy się również, jak wykonać korekcję przekrzywienia obrazu w Javie.

W tym artykule zostaną omówione następujące tematy:

  1. API Java do korekcji skosu obrazu
  2. Wykryj kąt pochylenia obrazu
  3. Wykryj kąt pochylenia obrazu obrazu na żywo
  4. Automatyczna korekcja przekrzywienia obrazu
  5. Rozpoznaj tekst obrazu z automatyczną korekcją przekosu
  6. Ręczna korekcja przekrzywienia obrazu
  7. Rozpoznawanie tekstu obrazu z ręczną korekcją przekrzywienia obrazu

Java API do korekcji przekrzywienia obrazu

Do wykrywania i korygowania przekrzywień obrazu będziemy używać interfejsu API Aspose.OCR for Java. Umożliwia wykonywanie OCR na zeskanowanych obrazach, zdjęciach ze smartfona, zrzutach ekranu, obszarach obrazu i zeskanowanych plikach PDF. API umożliwia również zapisywanie rozpoznanych wyników tekstowych w popularnych formatach dokumentów.

Klasa AsposeOCR API jest główną klasą do rozpoznawania tekstu z obrazów. Zapewnia metodę CalcSkewImage(string), która oblicza kąt pochylenia dostarczonego obrazu źródłowego. Zapewnia również inną metodę CalcSkewImageFromUri(String uri), która oblicza kąt pochylenia obrazu dostarczonego przez łącze URI. Klasa PreprocessingFilter jest klasą bazową dla poleceń przetwarzania obrazu. Klasa RecognitionSettings API udostępnia ustawienia rozpoznawania obrazu zawiera elementy umożliwiające dostosowanie procesu rozpoznawania.

Pobierz plik JAR API lub dodaj następującą konfigurację pom.xml w aplikacji Java opartej 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>

Wykryj kąt pochylenia obrazu w Javie

Możemy łatwo wykryć kąt pochylenia obrazu tekstowego, wykonując czynności podane poniżej:

  1. Najpierw utwórz instancję klasy AsposeOCR.
  2. Wywołaj metodę CalcSkewImage(). Przyjmuje ścieżkę obrazu jako argument.
  3. Na koniec pokaż obliczony kąt skosu.

Poniższy przykładowy kod pokazuje, jak obliczyć kąt pochylenia obrazu w Javie.

// Ten przykład kodu demonstruje, jak obliczyć kąt pochylenia obrazu.
// Utwórz instancję AsposeOcr
AsposeOCR api = new AsposeOCR();

// Oblicz kąt skosu
double skew = api.CalcSkewImage("C:\\Files\\source.png");

// Pokaż kąt
System.out.println("Skew angle: " + skew + "°.");

Wykryj kąt pochylenia obrazu z adresu URL obrazu na żywo

Możemy również wykryć kąt pochylenia obrazu z aktywnego adresu URL, wykonując czynności podane poniżej:

  1. Najpierw utwórz instancję klasy AsposeOCR.
  2. Wywołaj metodę CalcSkewImageFromUri(). Przyjmuje ścieżkę obrazu jako argument.
  3. Na koniec pokaż obliczony kąt skosu.

Poniższy przykładowy kod pokazuje, jak obliczyć kąt pochylenia obrazu w Javie.

// Ten przykład kodu demonstruje, jak obliczyć kąt pochylenia obrazu.
// Utwórz instancję AsposeOcr
AsposeOCR api = new AsposeOCR();

// Oblicz kąt skosu
double skew = api.CalcSkewImageFromUri("https://www.aspose.com/sample-ocr-page.png");

// Pokaż kąt
System.out.println("Skew angle: " + skew + "°.");

Automatyczna korekcja przekrzywienia obrazu w Javie

Możemy automatycznie skorygować korekcję przekrzywienia obrazu, wykonując poniższe czynności:

  1. Najpierw utwórz instancję klasy AsposeOCR.
  2. Następnie zainicjuj obiekt klasy PreprocessingFilter.
  3. Następnie dodaj filtr AutoSkew().
  4. Następnie wywołaj metodę PreprocessImage(), aby zastosować filtr do obrazu źródłowego.
  5. Na koniec zapisz poprawiony obraz.

Poniższy przykładowy kod pokazuje, jak zastosować filtr wstępnego przetwarzania automatycznej korekty skośnej w Javie.

// Ten przykład kodu demonstruje, jak zastosować automatyczną korekcję pochylenia przy użyciu filtra przetwarzania wstępnego i zapisać poprawiony obraz.
// Utwórz instancję AsposeOcr
AsposeOCR api = new AsposeOCR();

// Dodaj filtr prostowania
PreprocessingFilter filters = new PreprocessingFilter();
filters.add(PreprocessingFilter.AutoSkew());

// Zapisz wstępnie przetworzony obraz do pliku
BufferedImage imageRes = api.PreprocessImage("C:\\Files\\source.png", filters);
File outputSource = new File("C:\\Files\\result.png");
ImageIO.write(imageRes, "png", outputSource);

Rozpoznaj tekst obrazu z automatyczną korekcją pochylenia w Javie

Możemy zastosować automatyczną korekcję pochylenia i rozpoznać tekst, wykonując poniższe czynności:

  1. Najpierw utwórz instancję klasy AsposeOCR.
  2. Następnie zainicjuj obiekt klasy RecognitionSettings.
  3. Następnie wywołaj setAutoSkew z true jako argumentem.
  4. Następnie wywołaj metodę RecognizePage() z obrazem źródłowym i obiektem RecognitionSettings.
  5. Na koniec pokaż rozpoznany tekst.

Poniższy przykładowy kod pokazuje, jak zastosować automatyczną korekcję pochylenia i rozpoznać tekst w Javie.

// Ten przykład kodu pokazuje, jak zastosować automatyczną korektę pochylenia.
// Utwórz instancję AsposeOcr
AsposeOCR api = new AsposeOCR();

// Włącz automatyczne prostowanie w ustawieniach rozpoznawania
RecognitionSettings recognitionSettings = new RecognitionSettings();
recognitionSettings.setAutoSkew(true);

// Rozpoznaj obraz
RecognitionResult result = api.RecognizePage("C:\\Files\\source.png", recognitionSettings);

// Pokaż rozpoznany tekst
System.out.println(result.recognitionText);

Ręczna korekcja przekrzywienia obrazu w Javie

Kąt pochylenia możemy zdefiniować ręcznie, obracając obraz o określony stopień, wykonując czynności podane poniżej:

  1. Najpierw utwórz instancję klasy AsposeOCR.
  2. Następnie zainicjuj obiekt klasy PreprocessingFilter.
  3. Następnie dodaj kąt obrotu za pomocą filtra metody Rotate().
  4. Następnie utwórz wystąpienie klasy RecognitionSettings.
  5. Następnie wywołaj metodę PreprocessImage(), aby zastosować filtr do obrazu źródłowego.
  6. Na koniec pokaż rozpoznany tekst.

Poniższy przykładowy kod pokazuje, jak zastosować ręczną korekcję pochylenia z filtrem przetwarzania wstępnego w Javie.

// Ten przykład kodu pokazuje, jak zastosować ręczną korekcję pochylenia.
// Utwórz instancję AsposeOcr
AsposeOCR api = new AsposeOCR();

// Dodaj filtr prostowania
PreprocessingFilter filters = new PreprocessingFilter();
filters.add(PreprocessingFilter.Rotate(-90));

// Zapisz wstępnie przetworzony obraz do pliku
BufferedImage imageRes = api.PreprocessImage("C:\\Files\\source.png", filters);
File outputSource = new File("C:\\Files\\result.png");
ImageIO.write(imageRes, "png", outputSource);

Rozpoznaj tekst obrazu za pomocą ręcznej korekcji skosu obrazu w Javie

Możemy ręcznie zdefiniować kąt skosu i rozpoznać tekst, wykonując poniższe czynności:

  1. Najpierw utwórz instancję klasy AsposeOCR.
  2. Następnie zainicjuj obiekt klasy RecognitionSettings.
  3. Następnie wywołaj metodę setSkew().
  4. Następnie wywołaj metodę RecognizePage() z obrazem źródłowym i obiektem RecognitionSettings.
  5. Na koniec pokaż rozpoznany tekst.

Poniższy przykładowy kod pokazuje, jak zastosować ręczną korekcję pochylenia i rozpoznać tekst obrazu w Javie.

// Ten przykład kodu pokazuje, jak zastosować ręczną korekcję pochylenia.
// Utwórz instancję AsposeOcr
AsposeOCR recognitionEngine = new AsposeOCR();

// Ręcznie ustaw kąt pochylenia
RecognitionSettings recognitionSettings = new RecognitionSettings();
recognitionSettings.setSkew(6);

// Rozpoznaj obraz
RecognitionResult result = recognitionEngine.RecognizePage("C:\\Files\\source.png", recognitionSettings);

// Wyświetl wyniki
System.out.println(result.recognitionText);

Uzyskaj bezpłatną licencję ewaluacyjną

Możesz uzyskać bezpłatną tymczasową licencję, aby wypróbować Aspose.OCR for Java bez ograniczeń ewaluacyjnych.

Wniosek

W tym artykule dowiedzieliśmy się, jak:

  • wykonywać OCR i rozpoznawać tekst na obrazach;
  • stosować filtry i przetwarzać obrazy;
  • użyj ustawień rozpoznawania;
  • zapisz poprawione obrazy przy użyciu języka Java.

Oprócz korekcji pochylenia obrazu w Javie, możesz dowiedzieć się więcej o Aspose.OCR for Java API, korzystając z dokumentacji. W przypadku jakichkolwiek niejasności prosimy o kontakt na naszym darmowym forum pomocy.

Zobacz też