Inom datorgrafik och bildbehandling är bildskevning en vinkelavvikelse hos rektangulära bilder. Det är också känt som bildlutning eller förvrängning. Termen “skev” syftar på vinkeln på en bild. Bildskev uppstår när den visuella positionen för element i en bild inte är enhetlig. Skevningar kan resultera i att alla hörn hamnar i vinkel, eller till och med förskjuts så att den ena sidan är längre än den andra. Sådana foton eller skannade bilder kan se förvrängda och föga tilltalande ut. I den här artikeln kommer vi att lära oss hur du upptäcker bildskevning programmatiskt. Vi kommer också att lära oss hur man utför bildskevningskorrigering i Java.
Följande ämnen ska behandlas i den här artikeln:
- Java API för bildskevningskorrigering
- Detektera sned bildvinkel
- Detektera skev bildvinkel för levande bild
- Automatisk bildskevningskorrigering
- Känn igen bildtext med automatisk skevningskorrigering
- Manuell bildskevningskorrigering
- Känn igen bildtext med manuell bildskevningskorrigering
Java API för bildskevningskorrigering
För detektering och korrigeringar av sned bild kommer vi att använda API:t Aspose.OCR for Java. Det gör det möjligt att utföra OCR på skannade bilder, smartphonefoton, skärmdumpar, delar av en bild och skannade PDF-filer. API:et gör det också möjligt att spara de igenkända textresultaten i populära dokumentformat.
Klassen AsposeOCR i API:t är huvudklassen för att känna igen text från bilder. Den tillhandahåller metoden CalcSkewImage(string) som beräknar snedställningsvinkeln för den angivna källbilden. Den tillhandahåller också en annan CalcSkewImageFromUri(String uri)-metod som beräknar snedställningsvinkeln för en bild som tillhandahålls av URI-länken. Klassen PreprocessingFilter är basklassen för bildbehandlingskommandon. Klassen RecognitionSettings i API:t tillhandahåller inställningar för bildigenkänningen innehåller element som gör det möjligt att anpassa igenkänningsprocessen.
Vänligen antingen ladda ner JAR för API eller lägg till följande pom.xml-konfiguration i en Maven-baserad Java-applikation.
<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>
Upptäck bildskevvinkel i Java
Vi kan enkelt upptäcka snedställningsvinkeln för en textbild genom att följa stegen nedan:
- Skapa först en instans av klassen AsposeOCR.
- Anropa metoden CalcSkewImage(). Den tar bildvägen som ett argument.
- Visa slutligen den beräknade snedställningsvinkeln.
Följande exempelkod visar hur man beräknar snedställningsvinkeln för en bild i Java.
// Detta kodexempel visar hur man beräknar snedställningsvinkeln för en bild.
// Skapa en instans av AsposeOcr
AsposeOCR api = new AsposeOCR();
// Beräkna skevningsvinkel
double skew = api.CalcSkewImage("C:\\Files\\source.png");
// Visa vinkel
System.out.println("Skew angle: " + skew + "°.");
Upptäck bildskevvinkel från Live Image URL
Vi kan också upptäcka snedställningsvinkeln för en bild från en live-URL genom att följa stegen nedan:
- Skapa först en instans av klassen AsposeOCR.
- Anropa metoden CalcSkewImageFromUri(). Den tar bildvägen som ett argument.
- Visa slutligen den beräknade snedställningsvinkeln.
Följande exempelkod visar hur man beräknar snedställningsvinkeln för en bild i Java.
// Detta kodexempel visar hur man beräknar snedställningsvinkeln för en bild.
// Skapa en instans av AsposeOcr
AsposeOCR api = new AsposeOCR();
// Beräkna snedvinkel
double skew = api.CalcSkewImageFromUri("https://www.aspose.com/sample-ocr-page.png");
// Visa vinkel
System.out.println("Skew angle: " + skew + "°.");
Automatisk bildskevningskorrigering i Java
Vi kan automatiskt korrigera bildsnedvridning genom att följa stegen nedan:
- Skapa först en instans av klassen AsposeOCR.
- Initiera sedan ett objekt av klassen PreprocessingFilter.
- Lägg sedan till AutoSkew()-filtret.
- Därefter anropar du metoden PreprocessImage() för att tillämpa filtret på källbilden.
- Spara slutligen den korrigerade bilden.
Följande exempelkod visar hur man använder förbearbetningsfilter för automatisk snedställningskorrigering i Java.
// Det här kodexemplet visar hur man använder automatisk snedställningskorrigering med förbehandlingsfilter och sparar den korrigerade bilden.
// Skapa en instans av AsposeOcr
AsposeOCR api = new AsposeOCR();
// Lägg till snettfilter
PreprocessingFilter filters = new PreprocessingFilter();
filters.add(PreprocessingFilter.AutoSkew());
// Spara förbehandlad bild till fil
BufferedImage imageRes = api.PreprocessImage("C:\\Files\\source.png", filters);
File outputSource = new File("C:\\Files\\result.png");
ImageIO.write(imageRes, "png", outputSource);
Känn igen bildtext med automatisk skevningskorrigering i Java
Vi kan tillämpa automatisk skevningskorrigering och känna igen texten genom att följa stegen nedan:
- Skapa först en instans av klassen AsposeOCR.
- Initiera sedan ett objekt av klassen RecognitionSettings.
- Anropa sedan setAutoSkew med true som argument.
- Efter det, anropa metoden RecognizePage() med källbilden och RecognitionSettings-objektet.
- Till sist, visa den igenkända texten.
Följande exempelkod visar hur du använder automatisk snedställningskorrigering och känner igen texten i Java.
// Detta kodexempel visar hur man tillämpar automatisk snedställningskorrigering.
// Skapa en instans av AsposeOcr
AsposeOCR api = new AsposeOCR();
// Aktivera automatisk snedställning i igenkänningsinställningar
RecognitionSettings recognitionSettings = new RecognitionSettings();
recognitionSettings.setAutoSkew(true);
// Känner igen bilden
RecognitionResult result = api.RecognizePage("C:\\Files\\source.png", recognitionSettings);
// Visa igenkänd text
System.out.println(result.recognitionText);
Manuell bildskevningskorrigering i Java
Vi kan definiera snedställningsvinkeln manuellt genom att rotera bilden till angiven grad genom att följa stegen nedan:
- Skapa först en instans av klassen AsposeOCR.
- Initiera sedan ett objekt av klassen PreprocessingFilter.
- Lägg sedan till rotationsvinkel med hjälp av metoden Rotate()-filtret.
- Skapa sedan en instans av klassen RecognitionSettings.
- Därefter anropar du metoden PreprocessImage() för att tillämpa filtret på källbilden.
- Till sist, visa den igenkända texten.
Följande exempelkod visar hur man tillämpar manuell skevningskorrigering med förbearbetningsfilter i Java.
// Detta kodexempel visar hur man använder manuell skevningskorrigering.
// Skapa en instans av AsposeOcr
AsposeOCR api = new AsposeOCR();
// Lägg till snettfilter
PreprocessingFilter filters = new PreprocessingFilter();
filters.add(PreprocessingFilter.Rotate(-90));
// Spara förbehandlad bild till fil
BufferedImage imageRes = api.PreprocessImage("C:\\Files\\source.png", filters);
File outputSource = new File("C:\\Files\\result.png");
ImageIO.write(imageRes, "png", outputSource);
Känn igen bildtext med manuell bildskevningskorrigering i Java
Vi kan definiera snedställningsvinkeln manuellt och känna igen texten genom att följa stegen nedan:
- Skapa först en instans av klassen AsposeOCR.
- Initiera sedan ett objekt av klassen RecognitionSettings.
- Anropa sedan metoden setSkew().
- Efter det, anropa metoden RecognizePage() med källbilden och RecognitionSettings-objektet.
- Till sist, visa den igenkända texten.
Följande exempelkod visar hur man använder manuell skevningskorrigering och känner igen bildtexten i Java.
// Detta kodexempel visar hur man använder manuell skevningskorrigering.
// Skapa en instans av AsposeOcr
AsposeOCR recognitionEngine = new AsposeOCR();
// Ställ in snedställningsvinkeln manuellt
RecognitionSettings recognitionSettings = new RecognitionSettings();
recognitionSettings.setSkew(6);
// Känner igen bilden
RecognitionResult result = recognitionEngine.RecognizePage("C:\\Files\\source.png", recognitionSettings);
// Visa resultat
System.out.println(result.recognitionText);
Skaffa en gratis utvärderingslicens
Du kan få en gratis tillfällig licens för att prova Aspose.OCR för Java utan utvärderingsbegränsningar.
Slutsats
I den här artikeln har vi lärt oss hur man:
- utföra OCR och känna igen text på bilder;
- tillämpa filter och bearbeta bilder;
- använd igenkänningsinställningar;
- spara de korrigerade bilderna med Java.
Förutom bildskevningskorrigering i Java kan du lära dig mer om Aspose.OCR för Java API med hjälp av dokumentation. I händelse av oklarheter är du välkommen att kontakta oss på vårt gratis supportforum.