在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数组以将其转换为图像格式。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...