Reconocer-Texto-OCR-Imagen-usando-Java

Puede convertir un texto de la imagen a un formato editable con el reconocimiento óptico de caracteres (OCR). Imágenes como JPG, PNG, TIFF, BMP, GIF, etc. se utilizan en todas partes en Internet y es posible que deba reconocer texto de una imagen en línea. Puede usar fácilmente el enlace URL a esa imagen para realizar el OCR en ella, en lugar de guardar o descargar el archivo. Los siguientes encabezados discuten los detalles más a fondo:

API de Java OCR: instalación

Aspose.OCR for Java La API se puede utilizar para realizar operaciones de reconocimiento óptico de caracteres en imágenes. Puede reconocer texto y convertir la imagen en texto editable. Descargue el archivo JAR de la API desde la sección Descargas o especifique las siguientes configuraciones de Maven en el archivo pom.xml de su proyecto:

Repositorio:

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

Dependencia:

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

Reconocer texto realizando OCR en imagen desde URL con Java

Puede realizar el reconocimiento óptico de caracteres en una imagen desde la URL con los siguientes pasos:

  1. Cree una instancia de API con la clase AsposeOCR.
  2. Especifique el URI de la imagen.
  3. Configure las opciones de reconocimiento con la clase RecognitionSettings.
  4. Obtener objeto de resultado.
  5. Imprimir resultado.

El siguiente código explica cómo reconocer texto al realizar OCR en la imagen desde la URL mediante programación usando Java:

//Crear instancia de API
AsposeOCR api = new AsposeOCR();

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

// Establecer opciones de reconocimiento
RecognitionSettings settings = new RecognitionSettings();
settings.setAutoSkew(false);
ArrayList<Rectangle> rectangles = new ArrayList<Rectangle>();
rectangles.add(new Rectangle(90,186,775,95));
settings.setRecognitionAreas(rectangles);


// Obtener 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);
}

Reconocer texto de imagen sesgada o inclinada con OCR usando Java

A veces, una imagen puede estar inclinada o sesgada por alguna razón. Por ejemplo, una imagen creada por una cámara o un escáner puede estar un poco sesgada, entonces puede obtener el ángulo sesgado de la imagen de entrada. Puede mejorar la precisión del reconocimiento de texto conociendo y corrigiendo el ángulo de inclinación. Necesitas seguir los siguientes pasos:

  • Cree una instancia de API usando el objeto AsposeOCR.
  • Establecer opciones de reconocimiento.
  • Calcular y establecer el ángulo de inclinación.
  • Obtenga el resultado con el objeto RecognitionResult e imprímalo.

El siguiente código muestra cómo reconocer texto de una imagen sesgada con OCR mediante programación en Java:

//Crear instancia 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);

// lee la url
image = ImageIO.read(url);
}catch(IOException e){
            e.printStackTrace();
        }
// establecer opciones de reconocimiento
RecognitionSettings settings = new RecognitionSettings();
double angle = 0;

// Obtener ángulo de inclinación
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);

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

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

Obtenga una licencia de API gratuita

Puede solicitar una Licencia temporal gratuita para evaluar la API en toda su capacidad.

Conclusión

En conclusión, ha aprendido a reconocer texto realizando operaciones de OCR en una imagen desde cualquier dirección URL. Además, ha explorado cómo corregir el ángulo de inclinación de la imagen para mejorar la precisión y la eficiencia de la API. Puede echar un vistazo a otras características de la API visitando la Documentación, o no dude en contactarnos a través del Foro de soporte gratuito en caso de cualquier consulta.

Ver también