如何解决在python后端中将base64编码的bmp图像转换为其像素值
正如问题所述,我需要一种将base64图像解码为该图像的像素值的方法。我尝试将opencv用于imdecode,这几乎就是我发现的所有内容。
我要这样做的原因是因为我正在编写一个后端api,它从Web应用程序(如果需要,用TypeScript编写,从一个对象编写)接收一个base64编码的图像,然后在python中我要解析它像素值进行一些计算,例如查看图像的平均颜色是什么。
问题是数据发送的像素可能不一样,这是一种奇怪的格式,我不知道如何解码。
这是示例base64图像:
编辑 iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAh0lEQVQ4T + 3TMQ6AIAwF0PZIbIxwcljZuFENJhiDrX4imzKT109bWESEFh7 + wdfdvO0hM18KPM0QAhtyxu / Q6Sl32EKnwForOecohEApJbXfMLjsyeNglgzF2iUNV5 / cUllJSinkvT9qjPemwSblnCnGuKMwiH4ZCOxYT2GtiFYUXhs08QfBDdNTgsUZ / lOUAAAAAElFTkSuQmCC ==
它可以在浏览器解码器中解码,并且还可以正确显示图像,但我无法解码,因此可以迭代像素值。
解决方法
import base64
import numpy as np
import cv2
base64_string = "INSERT BASE64 HERE"
decoded = base64.b64decode(base64_string)
buffer = np.fromstring(decoded,np.float32)
image_array = cv2.imdecode(buffer,cv2.IMREAD_COLOR)
cv2.imshow("img",image_array)
cv2.waitKey(0)
base64字符串被解码,然后np.fromstring将解码的字符串转换为数组。最后,cv2.imdecode解码NumPy数组以将其转换为图像格式。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。