Rozpoznaj-tekst-OCR-obraz-przy użyciu-Java

Możesz przekonwertować tekst z obrazu na format edytowalny za pomocą optycznego rozpoznawania znaków (OCR). Obrazy takie jak JPG, PNG, TIFF, BMP, GIF itp. są używane wszędzie w Internecie i może być konieczne rozpoznawać tekst z obrazu online. Możesz łatwo użyć linku URL do tego obrazu, aby wykonać na nim OCR, zamiast zapisywać lub pobierać plik. Poniższe nagłówki omawiają dalsze szczegóły:

Java OCR API – instalacja

Aspose.OCR for Java API może służyć do wykonywania operacji optycznego rozpoznawania znaków na obrazach. Może rozpoznawać tekst i konwertować obraz na edytowalny tekst. Pobierz plik JAR API z sekcji Downloads lub określ następujące konfiguracje Mavena w pliku pom.xml swojego projektu:

Magazyn:

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>http://repository.aspose.com/repo/</url>
</repository>

Zależność:

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-ocr</artifactId>
    <version>20.5</version>
</dependency>

Rozpoznaj tekst, wykonując OCR na obrazie z adresu URL za pomocą Java

Możesz wykonać optyczne rozpoznawanie znaków na obrazie z adresu URL, wykonując następujące czynności:

  1. Utwórz instancję API z klasą AsposeOCR.
  2. Określ identyfikator URI obrazu.
  3. Ustaw opcje rozpoznawania za pomocą klasy RecognitionSettings.
  4. Pobierz obiekt wynikowy.
  5. Wydrukuj wynik.

Poniższy kod wyjaśnia, jak rozpoznawać tekst przez programowe rozpoznawanie OCR na obrazie z adresu URL przy użyciu języka Java:

//Utwórz instancję interfejsu API
AsposeOCR api = new AsposeOCR();

// Określ identyfikator URI obrazu
String uri = "https://www.castlegateit.co.uk/wp-content/uploads/2016/09/justified_text.png";

// Ustaw opcje rozpoznawania
RecognitionSettings settings = new RecognitionSettings();
settings.setAutoSkew(false);
ArrayList<Rectangle> rectangles = new ArrayList<Rectangle>();
rectangles.add(new Rectangle(90,186,775,95));
settings.setRecognitionAreas(rectangles);


// Pobierz obiekt wynikowy
RecognitionResult result = null;
try {
	result = api.RecognizePageFromUri(uri, settings);
} catch (IOException e) {
	e.printStackTrace();
}

// Wydrukuj wynik
System.out.println("Result: \n" + result.recognitionText+"\n\n");
System.out.println("RecognitionAreasText: \n");
for(String text: result.recognitionAreasText) {
	System.out.println(text);
}

Rozpoznaj tekst z przekrzywionego lub pochylonego obrazu za pomocą OCR przy użyciu języka Java

Czasami obraz może być przechylony lub przekrzywiony z jakiegoś powodu. Na przykład obraz utworzony przez aparat lub skaner może być nieco przekrzywiony, wtedy można uzyskać kąt pochylenia obrazu wejściowego. Możesz poprawić dokładność rozpoznawania tekstu, znając i korygując kąt pochylenia. Musisz wykonać następujące kroki:

  • Utwórz instancję API przy użyciu obiektu AsposeOCR.
  • Ustaw opcje rozpoznawania.
  • Oblicz i ustaw kąt skosu.
  • Pobierz wynik za pomocą obiektu RecognitionResult i wydrukuj go.

Poniższy kod pokazuje, jak programowo rozpoznawać tekst z przekrzywionego obrazu za pomocą OCR w Javie:

//Utwórz instancję interfejsu API
AsposeOCR api = new AsposeOCR();

String uri = "https://www.castlegateit.co.uk/wp-content/uploads/2016/09/justified_text.png";

BufferedImage image = null;
try{
java.net.URL url =new java.net.URL(uri);

// przeczytaj adres URL
image = ImageIO.read(url);
}catch(IOException e){
            e.printStackTrace();
        }
// ustaw opcje rozpoznawania
RecognitionSettings settings = new RecognitionSettings();
double angle = 0;

// Uzyskaj kąt skosu
try {
	angle = api.CalcSkewImage(image);
	System.out.println("Skew text is:" + angle + " degrees.");
} catch (IOException e1) {
	e1.printStackTrace();
}
settings.setSkew(angle);

ArrayList<Rectangle> rectangles = new ArrayList<Rectangle>();
rectangles.add(new Rectangle(90,186,775,95));
settings.setRecognitionAreas(rectangles);

// pobierz obiekt wynikowy
RecognitionResult result = null;
try {
	result = api.RecognizePageFromUri(uri, settings);
} catch (IOException e) {
	e.printStackTrace();
}

// wydrukować wynik
System.out.println("Result: \n" + result.recognitionText+"\n\n");
System.out.println("RecognitionAreasText: \n");
for(String text: result.recognitionAreasText) {
	System.out.println(text);
}

Uzyskaj bezpłatną licencję API

Możesz poprosić o Bezpłatną licencję tymczasową, aby w pełni wykorzystać możliwości interfejsu API.

Wniosek

Podsumowując, nauczyłeś się rozpoznawać tekst, wykonując operacje OCR na obrazie z dowolnego adresu URL. Ponadto zbadałeś, jak poprawić kąt pochylenia obrazu, aby poprawić dokładność i wydajność interfejsu API. Możesz zapoznać się z kilkoma innymi funkcjami interfejsu API, odwiedzając Dokumentację lub skontaktuj się z nami za pośrednictwem Bezpłatne forum pomocy technicznej w przypadku jakichkolwiek pytań.

Zobacz też