如何在MATLAB中读出base64图像?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在MATLAB中读出base64图像?相关的知识,希望对你有一定的参考价值。

我有以下base64字符串,这是一个图像:Link to base64 image,我希望在Matlab中取回图像。我使用以下网站检查图像是否有效:https://codebeautify.org/base64-to-image-converter并且它没有任何问题。

从网站解码后下载图像时,我得到以下信息:

图像大小为512x512,位深度为32位。此外,我知道这是一个彩色图像。

我试过这里提到的方法Decode base64 to RGB image in matlab利用Apache库。但是,使用以下代码时:

result = native2unicode(base64.decode(uint8(img)).');

其中img是base64字符串,结果将是一个599636长char数组。但是,512*512*3 = 786432

我想知道如何从这里开始获得512 * 512彩色图像?

编辑:

我目前的解决方法是将base64编码图像写入文本文件,并通过python将其读出,并将其作为图像写入磁盘,然后在matlab中重新加载。哪个有效,但非常非常难看。在Python中,它使用简单的脚本:

import base64
f = open('test.txt','r')
message = f.read()
print(message)
with open("imageToSave.png", "wb") as fh:
    fh.write(base64.decodebytes(bytearray(message,'utf-8')))
答案
% Create a Java Base64 instance...
import('org.apache.commons.codec.binary.Base64');
base64 = Base64();

% Read the content of the file as text...
text = fileread('test.txt');
text = strtrim(text);

% Decode the text into a byte array...
img_bytes = base64.decode(text_bytes);

% Fill a temporary file with the decoded byte array...
fid = fopen('test.bin','w');
fwrite(fid,img_bytes,'int8');
fclose(fid);

% Read the temporary file as image and show the image...
img = imread('test.bin');
imshow(img);

以上是关于如何在MATLAB中读出base64图像?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 React Js 中显示 base64 图像?

如何使用 AFNetworking 在 UIImageView 中显示 base64 图像?

如何使用 nodejs 获取 gif 图像帧的 base64?

如何在 Angular 6 中显示以 base64 格式编码的图像?

如何在 Selenium Extent 报告中添加 Base64 图像的缩略图

如何在 Scriptable App 中将 Base64 转换为图像