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:
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:
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\……..