如何在matlab中检索以.mat格式存储的多个图像?(将.mat转换为图像)

时间:2012-01-27 09:07:44

标签: image matlab

我有70个面部图像存储在一个名为(sub1.mat)的.mat文件中,大小为8064 * 70,每个图像都存储在'sub.mat'的列向量中,现在我想要将每列转换为图像格式(灰色图像),下面是我写的代码,但它没有给我一个正确的图像,可以有人请让我知道是什么问题?我很感谢你的帮助。(我所知道的关于图像的唯一信息是:图像大小为100 * 100)

load sub1       % a .mat format with the size of 8064*70
%the first image, size 8064*1
a=sub1(:,1)    %each column is an image of an individual
%convert the column matrix to 100*100 image
b=imresize(a,[100 100]);
im=mat2gray(b)
imwrite(im,'im1.pgm');

1 个答案:

答案 0 :(得分:1)

通过这样做,matlab将尝试将图像8064x1的大小调整为100x100图像。为此,matlab将拉伸矢量使其适合尺寸100x100。这很可能看起来很糟糕。

这不是你想要做的。 你应该找到一种方法来了解什么是图像的原始维度,然后使用reshape

im=reshape(sub1(:,1),originalSize);

如果您不知道原始尺寸,则无法重建图像。

但是,如果你真的不知道原始尺寸,我会为你计算所有可能性,你应该测试它们:

[96 84]
[112 72]
[126 64]
[128 63]
[144 56]
[168 48]
[84 96]
[72 112]
[64 126]
[63 128]
[56 144]
[48 168]