Matlab读取存储在4D阵列中的图像

时间:2013-10-24 13:14:19

标签: matlab multidimensional-array

我一直在使用PCA在不同的图像面部数据库上进行Matlab实验。我最近从他多年前收购的同事那里收购了几个数据库。它们是.mat文件,当我双击.mat文件时,会显示以下文件

enter image description here

如您所见,图像存储在此dbface 4D数组变量中,但我不确定如何提取每个单独的图像。我只使用了几个星期的matlab,所以仍然熟悉它。我一直在寻找,但找不到任何关于如何从4D阵列中提取每个单独图像的例子。

非常感谢任何帮助

编辑:

size(dbface)

ans =
  64    64    11    15

If anyone else encounters this, easiest way to extract is to do the following

%Return rows cols and dimensions
[rows cols dimen1 dimen2] = size(dbface);

count = 0;
%Loop through each image
for i = 1:dimen1
for j = 1:dimen2
count = count + 1;
image = dbface(:,:,i,j);
tmimg=uint8(image); 
img=reshape(tmimg,cols,rows);   
images{count} = img;
end
end

1 个答案:

答案 0 :(得分:0)

从变量判断我猜你有很多64x64图像。

如果是这种情况,可以将其提取为

myExtract = dbface(:,:,1,1)

这将为您提供第一个,您可以改变最后两个数字以提取其他数字。