gpt4 book ai didi

python - 在 Base64 编码后恢复表示图像的 numpy 数组

转载 作者:行者123 更新时间:2023-12-02 11:35:47 25 4
gpt4 key购买 nike

在图像上使用 Base64 编码可以将图像完全恢复到其原始形状及其所有维度(2D、RGB),而无需直接知道分辨率 - 它们存储在 Base64 信息中

但是,当我有一个代表图像的 numpy 数组时,例如:

test_image = np.random.rand(10,10,3)

然后将其放入base64:

b64_test_image = base64.b64encode(test_image)

我可以通过以下方式返回数组的内容:

decoded = base64.b64decode(b64_test_image)
test_image_1D = np.frombuffer(decoded)

但是,与尺寸为 10x10x3 的原始图像相比,test_image_1D 只是一维。是否可以在不知道缓冲区大小的情况下恢复原始数组,就像图像的情况一样?

最佳答案

假设您的数据始终是图像,您需要使用库从 Base64 编码字符串中获取图像。以 OpenCV 为例:

retval, buffer = cv2.imencode('.jpg', test_image)
jpg_as_text = base64.b64encode(buffer)
nparr = np.fromstring(base64.b64decode(jpg_as_text), np.uint8)
img2 = cv2.imdecode(nparr, cv2.IMREAD_COLOR)

关于python - 在 Base64 编码后恢复表示图像的 numpy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49735187/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com