Как я могу получить несколько изображений, которые хранятся в формате .mat в Matlab? (конвертировать .mat в изображение) - PullRequest
0 голосов
/ 27 января 2012

У меня есть 70 изображений лица, которые хранятся в файле .mat с именем (sub1.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 Ответ

1 голос
/ 27 января 2012

При этом 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]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...