我一直在尝试通过javascript将图像发送到Flask服务器,以便在我从自己的API收到的坐标上绘制边界框。我如何将其转换为numpy数组?
我正在考虑使用cv2.imdecode功能,但我不想在我的服务器上下载那个巨大的文件。这是我发送给烧瓶的输入字符串src的示例:
data:image/jpeg;base64,IMGDATA HERE
我相信这个字符串是base64编码的,但我不知道如何在python中进行这种转换。
答案 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)))