📜  Python OpenCV – imencode()函数

📅  最后修改于: 2022-05-13 01:55:50.872000             🧑  作者: Mango

Python OpenCV – imencode()函数

Python OpenCV imencode()函数将图像格式转换(编码)为流数据并将其存储在内存缓存中。它主要用于压缩图像数据格式,以使网络传输更容易。

imencode()函数的基本示例

示例 1:

我们首先导入必要的库,即 OpenCV 和 NumPy。导入库后,我们使用 imread()函数加载图像,使用图像路径作为参数。加载图像后,我们开始使用 imencode() 方法对其进行编码,将要编码的图像的扩展名以及加载的图像作为参数传递。

结果会因格式而异。如果您注意到,我们只保存 imencode() 方法的第一个索引的数据,因为它产生两个输出:在零索引处操作是否成功,以及在第一个索引处的编码图像。现在我们将编码图像转换为 NumPy 数组,以便我们可以使用它。最后,我们将这个 NumPy 数组转换为字节,以便于传输。

使用的图像:

gfg.png

代码:

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)


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)


输出:(由于输出比较长,这里只展示了一部分)

示例 2:

使用的图像:

openCV.png

代码:

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)

输出: