我可以通过PIL,Python OpenCV等从磁盘读取jpg图像,通过一些内置函数(例如OpenCV)arr= cv2.imread(filename)
来创建numpy数组。
但是如何直接从内存中解码二进制格式的jpg?
使用案例:我想将一个jpg图像以二进制格式放入数据库,然后将其从db读入内存并将其解码为numpy数组。
这可能吗?
答案 0 :(得分:7)
假设您将数据库中的图像数据存储为string
,首先需要从该字符串构造一个numpy
数组,以后可以使用{{3}将其转换为图像}。例如:
img = cv2.imdecode(np.fromstring(img_data, dtype=np.uint8), -1)
答案 1 :(得分:1)
for python3使用这种方式
from scipy import misc
f= open('file.png', 'rb')
fs = f.read()
likefile = io.BytesIO(fs)
face1 = misc.imread(likefile)
python2有StringIO
答案 2 :(得分:0)
从网址获取图像到Jpg
import requests
from io import BytesIO
response = requests.get("https://optse.ztat.net/teaser/ES/CW15_ES_bermuda_men.jpg")
my_img_In_byts = BytesIO(response.content).read()
path="C:/Users/XX/Desktop/TryingPython/downloadedPic.jpg"
my_fprinter = open(path, mode='wb')
print( my_fprinter .write(my_img_In_byts))
my_fprinter.close()
print("Done")