Alinear imágenes en Python | Corrección de inclinación de imagen en Python

Si está buscando una manera de alinear correctamente el contenido inclinado en las imágenes, entonces ha llegado al lugar correcto. En este artículo, aprenderemos cómo realizar la corrección de inclinación en el procesamiento de imágenes usando Python. Le guiaremos a través de los conceptos básicos de la corrección de sesgo en Python. Cubriremos cómo detectar la inclinación en una imagen, cómo calcular el ángulo de inclinación y cómo corregir la inclinación de sus imágenes mediante programación usando Python.

Este artículo cubre los siguientes temas:

  1. Corrección de inclinación de imagen
  2. API de corrección de inclinación de Python
  3. Detección de sesgo en Python
  4. Corrección automática de inclinación
  5. Desviar imágenes manualmente
  6. Corrección de inclinación: recursos gratuitos

Corrección de inclinación de imagen

La corrección de inclinación en el procesamiento de imágenes, también conocida como corrección de inclinación, es el proceso de alinear una imagen que está inclinada o sesgada para que parezca más atractiva visualmente y más fácil de trabajar. La inclinación puede ocurrir debido a varias razones, como escaneo inadecuado, distorsión de la perspectiva o desalineación de la cámara, como se muestra en la siguiente imagen:

Imagen torcida

La imagen fuente.

API de Python para alinear imágenes

Aspose.OCR es una biblioteca de OCR ampliamente utilizada que permite realizar OCR en imágenes escaneadas, fotografías de teléfonos inteligentes, capturas de pantalla, áreas de una imagen y archivos PDF escaneados en varios lenguajes de programación, incluido Python. Usaremos la API Aspose.OCR for Python vía .NET para correcciones de sesgo.

Por favor descargue el paquete o instale la API desde PyPI usando el siguiente comando pip en la consola:

pip install aspose-ocr-python-net

Detectar ángulo sesgado en Python

Podemos detectar fácilmente el ángulo de inclinación de un texto en una imagen siguiendo los pasos a continuación:

  1. Cree una instancia de la clase AsposeOCR.
  2. Inicializa un objeto de la clase OcrInput.
  3. Agregue la imagen al lote de reconocimiento de OcrInput.
  4. Llame al métodocalculskew(). Toma la ruta de la imagen como argumento.
  5. Muestra el ángulo de inclinación calculado.

El siguiente código de muestra muestra cómo detectar el ángulo de inclinación de una imagen en Python.

import aspose.ocr as ocr

# Crear una instancia de la API Aspose.OCR
api = ocr.AsposeOcr()

# Agregar imagen al lote de reconocimiento
img = ocr.OcrInput(ocr.InputType.SINGLE_IMAGE)
img.add("D:\\Files\\source.png")

# Detectar ángulo de inclinación
angles = api.calculate_skew(img);
for angle in angles:
    print("File: " + angle.source)
    print(f"Skew angle: {angle.angle:.1f}\xb0")
File: D:\Files\source.png
Skew angle: 5.8°

Corrección automática de inclinación en Python

Podemos habilitar la corrección automática de inclinación y guardar la imagen corregida siguiendo los pasos a continuación:

  1. Cree una instancia de la clase AsposeOCR.
  2. Inicializa un objeto de la clase PreprocessingFilter.
  3. Agregue el filtro autoskew().
  4. Después de eso, agregue la imagen al lote de reconocimiento y aplique un filtro de procesamiento usando la clase OcrInput.
  5. Finalmente, llame al método ImageProcessing.save() para guardar la imagen procesada en la carpeta de ruta especificada.

El siguiente código de muestra muestra cómo aplicar la corrección de inclinación automática con un filtro de preprocesamiento en Python.

import aspose.ocr as ocr

# Crear una instancia de la API Aspose.OCR
api = ocr.AsposeOcr()

# Inicializar el procesamiento de imágenes
filters = ocr.models.preprocessingfilters.PreprocessingFilter()
filters.add(filters.auto_skew())

# Agregue una imagen al lote de reconocimiento y aplique el filtro de procesamiento
img = ocr.OcrInput(ocr.InputType.SINGLE_IMAGE, filters)
img.add("D:\\Files\\source.png")

# Guarde la imagen procesada en la carpeta "resultado"
ocr.ImageProcessing.save(img, "D:\\Files\\Output\\")
Corrección automática de inclinación con filtro en Python

Corrección automática de inclinación con filtro en Python.

Alinear imágenes manualmente en Python

Para la corrección manual de la inclinación, podemos definir el ángulo de inclinación manualmente siguiendo los pasos a continuación:

  1. Cree una instancia de la clase AsposeOCR.
  2. Inicializa un objeto de la clase PreprocessingFilter.
  3. Agregue el filtro rotar().
  4. Después de eso, agregue la imagen al lote de reconocimiento y aplique un filtro de procesamiento usando la clase OcrInput.
  5. Finalmente, llame al método ImageProcessing.save() para guardar la imagen procesada en la carpeta de ruta especificada.

El siguiente código de muestra muestra cómo enderezar imágenes manualmente en Python.

import aspose.ocr as ocr

# Crear una instancia de la API Aspose.OCR
api = ocr.AsposeOcr()

# Inicializar el procesamiento de imágenes
filters = ocr.models.preprocessingfilters.PreprocessingFilter()
filters.add(ocr.models.preprocessingfilters.PreprocessingFilter.rotate(5.8))

# Agregue una imagen al lote de reconocimiento y aplique el filtro de procesamiento
img = ocr.OcrInput(ocr.InputType.SINGLE_IMAGE, filters)
img.add("D:\\Files\\source.png")

# Guarde la imagen procesada en la carpeta "resultado"
ocr.ImageProcessing.save(img, "D:\\Files\\Output\\")

Obtenga una licencia gratuita

Puede obtener una licencia temporal gratuita para probar Aspose.OCR for Python a través de .NET sin limitaciones de evaluación.

Corrección de inclinación: recursos gratuitos

Además de implementar la corrección de distorsión de imágenes en Python, puede explorar más a fondo la API de OCR de Python utilizando los siguientes recursos:

Conclusión

En este artículo, hemos aprendido cómo alinear correctamente las imágenes inclinadas utilizando la corrección de inclinación de la imagen en Python. Hemos visto cómo enderezar imágenes utilizando el método automático y configurando el ángulo de rotación manualmente. Al aprovechar Aspose.OCR for Python a través de .NET, puede incorporar fácilmente dicha característica en sus aplicaciones Python. En caso de cualquier ambigüedad, no dude en contactarnos en nuestro foro de soporte gratuito.

Ver también