我一直在使用PCA在Matlab上在不同的圖像人臉數據庫上進行實驗。我最近從多年前收購了幾個同事的數據庫。他們是.MAT文件,當我雙擊文件.MAT,以下文件顯示Matlab讀取存儲在4D陣列中的圖像
正如你所看到的圖像存儲在這個dbface四維數組變量,但我不能確定如何提取每個單獨的圖像。我只用了幾個星期的matlab,所以仍然熟悉它。我一直在四處搜尋,但找不到任何有關如何從四維數組中提取各個圖像的示例。
任何幫助,將不勝感激
編輯:
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
'size dbface'的結果是什麼?通常圖像不是以4D存儲的,所以我認爲我們需要更多的信息來幫助你。 –
我更新了我的帖子。我不認爲圖像通常會存儲在4D中,這就是爲什麼當我打開文件時感到困惑 – AdamM
問你的同事。班級的規模和數量顯然在第三和第四個方面,但我不會滿足於這樣給你最後的話。 – chappjc