Image 如何在MATLAB中存储小图像

Image 如何在MATLAB中存储小图像,image,matlab,Image,Matlab,我正在尝试将1x8阵列转换为图像,我知道生成的图像会很小。我使用以下代码执行此操作: filename = fullfile('/Users/jlmontalvo/Documents/MATLAB/train_data.csv'); T = readtable(filename); C1 = []; t = T(1,:); a = t.Variables; a(end) = []; %getting rid of the last value test = getimage(imshow(a,

我正在尝试将1x8阵列转换为图像,我知道生成的图像会很小。我使用以下代码执行此操作:

filename = fullfile('/Users/jlmontalvo/Documents/MATLAB/train_data.csv');
T = readtable(filename);

C1 = [];
t = T(1,:);
a = t.Variables;
a(end) = []; %getting rid of the last value
test = getimage(imshow(a, [])); %display image
imwrite(test,'/Users/jlmontalvo/Desktop/hello.png'); %store image
问题在于MATLAB显示的图像如下所示:

但实际保存的是完全不同的,如下所示:

这是为什么?

getimage获取显示的数据。就是以后,

test = getimage(imshow(a, []));
测试与a相同

使用对比度拉伸显示图像,使最小值为黑色,最大值为白色。但是,从这些轴检索数据并不考虑这些因素,它只是返回显示的数据

相反,您可以自己拉伸数据:

test = double(a);
test = test - min(test(:));
test = test / max(test(:));

您知道我如何为8x8阵列执行此操作吗?我尝试执行相同的代码,但它只给了我一个垂直8x1图像@CrisLuengo@JoseMontalvo:我编辑了答案以处理任意图像。