我一直在使用PCA在不同的图像面部数据库上进行Matlab实验。我最近从他多年前收购的同事那里收购了几个数据库。它们是.mat文件,当我双击.mat文件时,会显示以下文件
如您所见,图像存储在此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
答案 0 :(得分:0)
从变量判断我猜你有很多64x64图像。
如果是这种情况,可以将其提取为
myExtract = dbface(:,:,1,1)
这将为您提供第一个,您可以改变最后两个数字以提取其他数字。