Python OpenCV imencode() Function (original) (raw)

Last Updated : 03 Jan, 2023

Python OpenCV imencode() function converts (encodes) image formats into streaming data and stores it in-memory cache. It is mostly used to compress image data formats in order to make network transfer easier.

Basic example of imencode() Function

Example 1:

We began by importing the necessary libraries, which are OpenCV and NumPy. After importing libraries, we use the imread() function to load the image, using the image path as an argument. After loading the image, we begin encoding it with the imencode() method, passing the extension of the image to be encoded as well as the loaded image as parameters.

The outcome will differ depending on the format. If you notice, we are only saving the data of the first index of the imencode() method since it produces two outputs: whether the operation was successful or not at the zero index, and the encoded image at the first index. Now we’ll convert the encoded image to a NumPy array so we can use it. Finally, we convert this NumPy array to bytes so that it can be easily transferred.

Used image:

gfg.png

Code:

Python3

import numpy as np

import cv2 as cv

img = cv.imread( '/content/gfg.png' )

img_encode = cv.imencode( '.png' , img)[ 1 ]

data_encode = np.array(img_encode)

byte_encode = data_encode.tobytes()

print (byte_encode)

Output: (Because the output was lengthy, only a portion of it is displayed here)

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

Example 2:

Used image:

openCV.png

Code:

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)

Output:

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