-1

我一直在 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
4

1 回答 1

0

从变量来看,我猜你有很多 64x64 的图像。

如果是这种情况,它们可以这样提取

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

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

于 2013-10-24T13:25:10.130 回答