python 二进制流图片解码
背景
为了将 c++ 中的图片数据传输到 python 里,用redis作为中介,先在c++中把类型为 unsigned char * 的二进制图片数据存到 redis 中,然后在 python 中从redis里读取二进制图片。现在的问题是如何将二进制数据转成 numpy 格式。
import redis
import cv2
import numpy as np
pool = redis.ConnectionPool(host='127.0.0.1', password='redistrans')
conn = redis.Redis(connection_pool=pool)
img = conn.get(1875863) # 二进制数据
# 可以通过这个方法存成图片
# with open('1.jpg', 'wb') as f:
# f.write(img)
# with open('1.jpg', 'rb') as f:
# img = f.read()
img = np.frombuffer(img, np.uint8) # 转成8位无符号整型
img = cv2.imdecode(img, cv2.IMREAD_COLOR) # 解码