请选择 进入手机版 | 继续访问电脑版
查看: 1399|回复: 0

从numpy.ndarray (图片)到字节流 / 从二进制文件到图片(numpy.nda...

[复制链接]

665

主题

1234

帖子

6561

积分

xdtech

Rank: 5Rank: 5

积分
6561
发表于 2020-10-28 20:10:26 | 显示全部楼层 |阅读模式
从numpy.ndarray (图片)到字节流:

x = img.tobytes()
从二进制文件到图片(numpy.ndarray):

img = cv2.imdecode(np.fromstring(x, np.uint8) )
eg1、

import numpy as np
import cv2
from cv2 import cv

# Load image as string from file/database
fd = open('foo.jpg')
img_str = fd.read()
fd.close()

# CV2
nparr = np.fromstring(img_str, np.uint8)
img_np = cv2.imdecode(nparr, cv2.CV_LOAD_IMAGE_COLOR) # cv2.IMREAD_COLOR in OpenCV 3.1

# CV
img_ipl = cv.CreateImageHeader((img_np.shape[1], img_np.shape[0]), cv.IPL_DEPTH_8U, 3)
cv.SetData(img_ipl, img_np.tostring(), img_np.dtype.itemsize * 3 * img_np.shape[1])

# check types
print type(img_str)
print type(img_np)
print type(img_ipl)
eg2、


我这个是读取的远程文件,我也是参照网上的办法, 这种办法我试过可行

import cv2   # opencv-python (3.4.2.16)
import numpy as np  # numpy (1.14.5)
import requests

file = requests.get("https://www.baidu.com/img/bd_logo1.png")
img = cv2.imdecode(np.fromstring(file.content, np.uint8), 1)    #file.content 是读取的远程文件的字节流
cv2.imwrite('save3.jpg', img)     # 保存


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表