2017-06-02 42 views
1

我可以通过PIL,OpenCV等从HDD读取jpg图像。通过一些内置函数(如arr= cv2.imread(filename))来排列数组。如何从内存中解码JPG图像?

但如何从内存中解码二进制fromat jpg?

使用案例:我想把二进制格式的JPG图像数据库,然后从数据库读取到RAM并将其解码为numpy数组是否可能?

回答

1

假设要存储在DB中的图像数据作为string,首先需要使用cv2.imdecode以构建从该字符串以后可以转换为图像的numpy数组:

img = cv2.imdecode(np.fromstring(img_data, dtype=np.uint8), -1) 
0

为python3用这种方式

f= open('file.png', 'rb') 
fs = f.read() 
likefile = io.BytesIO(fs) 
face1 = misc.imread(likefile) 

python2有StringIO的