Convertir imagen OpenCV a imagen PIL en Python

OpenCV es una enorme biblioteca de código abierto para visión artificial, aprendizaje automático y procesamiento de imágenes. OpenCV admite una amplia variedad de lenguajes de programación como Python, C++, Java, etc. Puede procesar imágenes y videos para identificar objetos, rostros o incluso la escritura a mano de un ser humano. Cuando se integra con varias bibliotecas, como Numpy, que es una biblioteca altamente optimizada para operaciones numéricas, la cantidad de armas aumenta en su arsenal, es decir, cualquier operación que se pueda hacer en Numpy se puede combinar con OpenCV.

Python Imaging Library (expansión de PIL) es el paquete de procesamiento de imágenes de facto para el lenguaje Python. Incorpora herramientas ligeras de procesamiento de imágenes que ayudan a editar, crear y guardar imágenes. El soporte para Python Imaging Library se suspendió en 2011, pero un proyecto llamado pillow bifurcó el proyecto PIL original y le agregó soporte para Python3.x. Pillow se anunció como reemplazo de PIL para uso futuro. Pillow admite numerosos formatos de archivo de imagen, incluidos BMP, PNG, JPEG y TIFF. La biblioteca fomenta la adición de soporte para formatos más nuevos en la biblioteca mediante la creación de nuevos decodificadores de archivos.

La diferencia básica entre la imagen OpenCV y la imagen PIL es que OpenCV sigue la convención de color BGR y PIL sigue la convención de color RGB y el método de conversión se basará en esta diferencia.

Acercarse:

  • Módulo de importación
  • Tomaremos la imagen de entrada usando el método imread de la biblioteca cv2.

Sintaxis:

imread(path, flag)

Parámetros:

  1. ruta: una string que representa la ruta de la imagen que se va a leer.
  2. flag: Especifica cómo se debe leer la imagen. Su valor predeterminado es cv2.IMREAD_COLOR.

Valor devuelto: este método devuelve una imagen que se carga desde el archivo especificado.

  • Luego usaremos el método cv2.cvtColor() de la biblioteca cv2 para cambiar la convención de color.

Sintaxis:

cvtColor(src, code[, dst[, dstCn]])

Parámetros:

  1. src: Es la imagen cuyo espacio de color se quiere cambiar.
  2. código: Es el código de conversión del espacio de color.
  3. dst: es la imagen de salida del mismo tamaño y profundidad que la imagen src. Es un parámetro opcional.
  4. dstCn: Es el número de canales en la imagen de destino. Si el parámetro es 0, el número de canales se deriva automáticamente de src y código. Es un parámetro opcional.

Valor devuelto: Devuelve una imagen.

  • Visualización de la imagen.

Notará que ambas imágenes serán idénticas incluso después de la conversión. Por lo tanto, podemos decir que hemos convertido con éxito una imagen OpenCV en una imagen PIL.

A continuación se muestra la implementación utilizando el enfoque anterior.

Programa:

Python3

# Python program to convert from openCV2 to PIL
  
import cv2
from PIL import Image
  
# Open image using openCV2
opencv_image = cv2.imread("logo.png")
  
# Notice the COLOR_BGR2RGB which means that the color is
# converted from BGR to RGB
color_coverted = cv2.cvtColor(opencv_image, cv2.COLOR_BGR2RGB)
  
# Displaying the Scanned Image by using cv2.imshow() method
cv2.imshow("OpenCV Image", opencv_image)
  
# Displaying the converted image
pil_image = Image.fromarray(color_coverted)
pil_image.show()
  
# waits for user to press any key
# (this is necessary to avoid Python kernel form crashing)
cv2.waitKey(0)
  
# closing all open windows
cv2.destroyAllWindows()

Aporte:

Producción:

  • Imagen OpenCV:

  • Imagen PIL:

 

Publicación traducida automáticamente

Artículo escrito por aditya_taparia y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *