Reconhecer-Texto-OCR-Imagem-usando-Java

Você pode converter um texto da imagem em um formato editável com reconhecimento óptico de caracteres (OCR). Imagens como JPG, PNG, TIFF, BMP, GIF, etc. reconhecer texto de uma imagem online. Você pode facilmente usar o link de URL para essa imagem para executar o OCR nela, em vez de salvar ou baixar o arquivo. Os títulos a seguir discutem os detalhes ainda mais:

Java OCR API – Instalação

A API Aspose.OCR for Java pode ser usada para realizar operações de reconhecimento óptico de caracteres em imagens. Ele pode reconhecer texto e converter a imagem em texto editável. Faça o download do arquivo JAR da API da seção Downloads ou especifique as seguintes configurações do Maven no arquivo pom.xml do seu projeto:

Repositório:

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

Dependência:

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

Reconhecer texto executando OCR na imagem do URL com Java

Você pode realizar o reconhecimento óptico de caracteres em uma imagem de URL com as seguintes etapas:

  1. Crie uma instância de API com a classe AsposeOCR.
  2. Especifique o URI da imagem.
  3. Defina as opções de reconhecimento com a classe RecognitionSettings.
  4. Obter objeto de resultado.
  5. Imprima o resultado.

O código a seguir explica como reconhecer texto executando o OCR na imagem do URL programaticamente usando Java:

//Criar instância de API
AsposeOCR api = new AsposeOCR();

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

// Definir opções de reconhecimento
RecognitionSettings settings = new RecognitionSettings();
settings.setAutoSkew(false);
ArrayList<Rectangle> rectangles = new ArrayList<Rectangle>();
rectangles.add(new Rectangle(90,186,775,95));
settings.setRecognitionAreas(rectangles);


// Obter objeto de resultado
RecognitionResult result = null;
try {
	result = api.RecognizePageFromUri(uri, settings);
} catch (IOException e) {
	e.printStackTrace();
}

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

Reconhecer texto de imagem distorcida ou inclinada com OCR usando Java

Às vezes, uma imagem pode ser inclinada ou distorcida por algum motivo. Por exemplo, uma imagem criada por uma câmera ou scanner pode ser um pouco inclinada, então você pode obter o ângulo de inclinação da imagem de entrada. Você pode melhorar a precisão do reconhecimento de texto conhecendo e corrigindo o ângulo de inclinação. Você precisa seguir os seguintes passos:

  • Crie uma instância de API usando o objeto AsposeOCR.
  • Defina as opções de reconhecimento.
  • Calcule e defina o ângulo de inclinação.
  • Obtenha o resultado com o objeto RecognitionResult e imprima-o.

O código abaixo mostra como reconhecer texto de uma imagem distorcida com OCR programaticamente em Java:

//Criar instância de 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);

// leia o URL
image = ImageIO.read(url);
}catch(IOException e){
            e.printStackTrace();
        }
// definir opções de reconhecimento
RecognitionSettings settings = new RecognitionSettings();
double angle = 0;

// Obter ângulo de inclinação
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);

// obter objeto de resultado
RecognitionResult result = null;
try {
	result = api.RecognizePageFromUri(uri, settings);
} catch (IOException e) {
	e.printStackTrace();
}

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

Obtenha licença de API gratuita

Você pode solicitar uma Licença Temporária Gratuita para avaliar a API em sua capacidade total.

Conclusão

Concluindo, você aprendeu a reconhecer texto executando operações de OCR em uma imagem de qualquer endereço de URL. Além disso, você explorou como corrigir o ângulo de inclinação da imagem para melhorar a precisão e a eficiência da API. Você pode dar uma olhada em vários outros recursos da API visitando a Documentação, ou sinta-se à vontade para entrar em contato conosco através do Fórum de suporte gratuito em caso de dúvidas.

Veja também