python 多种图片数据格式互转

python 多种图片数据格式 numpy、bytes、base64 互转

import cv2
import numpy as np
import base64
from PIL import Image
import matplotlib.pyplot as plt
# 打开图片
img1 = Image.open(r"C:\Users\xiahuadong\Pictures\风景\2.jpg")
print(img1)

# 显示图像
plt.figure(figsize=(5, 5))  # 设置画布尺寸
plt.imshow(img1)  # 要显示的图像
plt.show()  # 显示图像

python 多种图片数据格式互转_第1张图片

img_numpy = np.array(img1)  # 图像转numpy数组
print(img_numpy.shape)
(313, 500, 3)
# numpy 转 base64
data = cv2.imencode('.jpg', img_numpy)[1]
image_bytes = data.tobytes()
image_base64 = base64.b64encode(image_bytes).decode('utf8')
print(len(image_base64))
99068
# base64 转 numpy
image_bytes = base64.b64decode(image_base64)
image_numpy1 = np.frombuffer(image_bytes, dtype=np.uint8)
image_numpy2 = cv2.imdecode(image_numpy1, cv2.IMREAD_COLOR)
print(image_numpy2.shape)
(313, 500, 3)
# numpy 转 bytes
data = cv2.imencode('.jpg', img_numpy)[1]
image_bytes = data.tobytes()
print(len(image_bytes))
74299
# bytes 转 numpy
image_numpy1 = np.frombuffer(image_bytes, dtype=np.uint8)
image_numpy2 = cv2.imdecode(image_numpy1, cv2.IMREAD_COLOR)
print(image_numpy2.shape)
(313, 500, 3)
# base64 转 bytes
image_bytes = base64.b64decode(image_base64)
print(len(image_bytes))
74299
# bytes 转 base64
image_base64 = base64.b64encode(image_bytes).decode('utf8')
print(len(image_base64))
99068

你可能感兴趣的:(python,计算机视觉,开发语言)