Python OpenCV – función imencode()

La función Python OpenCV imencode() convierte (codifica) formatos de imagen en datos de transmisión y los almacena en memoria caché. Se utiliza principalmente para comprimir formatos de datos de imagen para facilitar la transferencia de red.

Ejemplo básico de la función imencode()

Ejemplo 1:

Empezamos importando las bibliotecas necesarias, que son OpenCV y NumPy . Después de importar bibliotecas, usamos la función imread() para cargar la imagen, usando la ruta de la imagen como argumento. Después de cargar la imagen, comenzamos a codificarla con el método imencode(), pasando la extensión de la imagen a codificar y la imagen cargada como parámetros. 

El resultado diferirá dependiendo del formato. Si nota, solo estamos guardando los datos del primer índice del método imencode() ya que produce dos salidas: si la operación fue exitosa o no en el índice cero y la imagen codificada en el primer índice. Ahora convertiremos la imagen codificada en una array NumPy para poder usarla. Finalmente, convertimos esta array NumPy en bytes para que pueda transferirse fácilmente. 

Imagen usada:

gfg.png

Código:

Python3

# This code demonstrates encoding of image.
import numpy as np
import cv2 as cv
  
# Passing path of image as parameter
img = cv.imread('/content/gfg.png')
  
# If the extension of our image was 
# '.jpg' then we have passed it as 
# argument instead of '.png'.
img_encode = cv.imencode('.png', img)[1]
  
# Converting the image into numpy array
data_encode = np.array(img_encode)
  
# Converting the array to bytes.
byte_encode = data_encode.tobytes()
  
print(byte_encode)

Resultado: (Debido a que el resultado fue extenso, aquí solo se muestra una parte)

b’\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x01,\x00\x00\x00\xa0\x08\x02\x00\x00\x009\x1a\xc65\ x00\ …………

Ejemplo 2: 

Imagen usada:

abrirCV.png

Código:

Python3

import numpy as np
import cv2 as cv
  
img = cv.imread('/content/OpenCV.png')
img_encode = cv.imencode('.jpg', img)[1]
  
data_encode = np.array(img_encode)
byte_encode = data_encode.tobytes()
  
print(byte_encode)

Producción:

b’\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x01\x00\x00\x01\x00\x01\x00\x00\xff\xdb\x00C\x00\x02\……..

Publicación traducida automáticamente

Artículo escrito por sp3768546 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 *