烧瓶到Numpy图像转换

时间:2017-10-03 19:04:10

标签: python numpy flask

我一直在尝试通过javascript将图像发送到Flask服务器,以便在我从自己的API收到的坐标上绘制边界框。我如何将其转换为numpy数组?

我正在考虑使用cv2.imdecode功能,但我不想在我的服务器上下载那个巨大的文件。这是我发送给烧瓶的输入字符串src的示例:

data:image/jpeg;base64,IMGDATA HERE

我相信这个字符串是base64编码的,但我不知道如何在python中进行这种转换。

1 个答案:

答案 0 :(得分:0)

我做了类似的事情。如果你有你的网址,那么你首先必须解码src字符串的IMGDATA部分,它是base64编码的。首先,您需要将IMGDATA与输入字符串分开。这可以使用:

完成
import base64
imgdata = imgsrcstring.split(',')[1]
decoded = base64.b64decode(imgdata)

然后你可以使用PIL Libarary将字符串的Bytes表示转换为图像,然后可以将其转换为numpy数组:

from PIL import Image
from io import BytesIO

img = np.array(Image.open(BytesIO(decoded)))