2017-10-07 224 views
2

我試圖從io.BytesIO()結構中加載OPENCV的圖像。 原來,代碼加載圖像與PIL,如下圖所示:使用opencv加載BytesIO圖像

image_stream = io.BytesIO() 
image_stream.write(connection.read(image_len)) 
image_stream.seek(0) 
image = Image.open(image_stream) 
print('Image is %dx%d' % image.size) 

我試着用OPENCV像打開:

image_stream = io.BytesIO() 
image_stream.write(connection.read(image_len)) 
image_stream.seek(0) 
img = cv2.imread(image_stream,0) 
cv2.imshow('image',img) 

但似乎imread不BytesIO處理() 。我收到一個錯誤。

我使用OPENCV 3.3和Python 2.7。請,有人可以幫我嗎?

回答

1

恩裏克 試試這個:

import numpy as np 

image_stream = io.BytesIO() 
image_stream.write(connection.read(image_len)) 
image_stream.seek(0) 
file_bytes = np.asarray(bytearray(img_stream.read()), dtype=np.uint8) 
img = cv.imdecode(file_bytes, cv.IMREAD_COLOR)