我一直在 Matlab 中对不同的图像人脸数据库使用 PCA 进行实验。我最近从同事那里获得了他几年前获得的几个数据库。它们是 .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