base64图片数据类型转numpy的ndarray矩阵类型数据

1、两种方法如下链接

https://www.cnblogs.com/mtcnn/p/9411683.html

 

2、第一种方法:

# coding: utf-8
# python base64 编解码,转换成Opencv,PIL.Image图片格式
import base64
import io
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt

img_file = open(r'images/mingong.jpg','rb')   # 二进制打开图片文件
img_b64encode = base64.b64encode(img_file.read())  # base64编码
img_file.close()  # 文件关闭
img_b64decode = base64.b64decode(img_b64encode)  # base64解码

image = io.BytesIO(img_b64decode)
print(image)
img = np.array(Image.open(image))
# imgs = plt.imread(image)
# img.show()
print(img.shape)
plt.imshow(img)
plt.show()

3、第二种方法:

import base64
import numpy as np
import matplotlib.pyplot as plt
import cv2

with open(r'images/flim.png','rb') as img_file:   # 二进制打开图片文件
   img_b64encode = base64.b64encode(img_file.read())  # base64编码
   #img_file.close()  # 文件关闭
# print(img_b64encode)
img_b64decode = base64.b64decode(img_b64encode)  # base64解码

# with open('./f.png','wb') as f:
#     f.write(img_b64decode)

# img_array = np.fromstring(img_b64decode,np.uint8) # 转换np序列
# img=cv2.imdecode(img_array,cv2.COLOR_BGR2RGB)  # 转换Opencv格式
# cv2.imshow("img",img)
# cv2.waitKey()

img_array = np.fromstring(img_b64decode,np.uint8)

print(len(img_array))
img=cv2.imdecode(img_array,cv2.COLOR_BGR2RGB)
print(np.array(img).shape)
plt.imshow(img)
plt.show()

 

posted @ 2019-08-06 21:18  洺剑残虹  阅读(2664)  评论(0编辑  收藏  举报