python - 将base64编码的bmp图像转换为python后端的像素值
问题描述
正如问题所说,我需要一种将base64图像解码为该图像像素值的方法。我尝试使用 opencv 进行 imdecode,这就是我发现的所有内容。
我想这样做的原因是因为我正在编写一个后端 api,它从 web 应用程序接收 base64 编码图像(如果需要,用 TypeScript 编写,从一个对象)然后在 python 中我想解析它的像素值做一些计算,比如看看图像的平均颜色是什么。
问题是数据可能不会像像素一样发送,这是一种奇怪的格式,我不知道如何解码。
这是一个示例 base64 图像:
EDIT 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 数组以转换为图像格式。
推荐阅读
- reactjs - 如果用户已登录,则显示不同的菜单项
- java - Logstash 未将完整数据从 oracle 加载到 Elasticsearch
- javascript - 在 Ajax 中使用值获取控制器
- google-apps-script - 谷歌脚本格式化通过脚本提取的信息
- python - 获取有关接收到的 UDP 消息的信息是广播还是单播
- javascript - 使用不同的企业 ID 时,信任试点轮播不起作用
- php - redis大通道数性能
- php - 使用 PHP 将 JSON 中的“false”值转换为空字符串
- php - Joomla 插件将 Javascript 片段注入所有页面
- android - 在 Outterclass 中应用更改的 Runnable 匿名类模拟示例?