Я экспериментировал в Matlab, используя PCA в разных базах данных изображений. Недавно я приобрел несколько баз данных от коллеги, которые он приобрел много лет назад. Они .mat файлы, когда я дважды щелкните файл .mat следующие файлы показаныMatlab читает изображения, хранящиеся в массиве 4D
Как вы можете видеть изображения сохраняются в этой dbface 4D переменного массива, но я не уверен, о том, как для извлечения каждого отдельного изображения. Я только несколько месяцев использовал Matlab, так что все еще знакомлюсь с ним. Я искал, но не могу найти примеров того, как вы хотите извлечь каждое отдельное изображение из массива 4D.
Любая помощь будет высоко ценится
Edit:
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
Спросите своего коллегу. Размер и количество классов явно находятся на 3-м и 4-м измерениях, но я не был бы доволен тем, что SO даст вам последнее слово. – chappjc