2013-10-24 4 views
-1

Я экспериментировал в Matlab, используя PCA в разных базах данных изображений. Недавно я приобрел несколько баз данных от коллеги, которые он приобрел много лет назад. Они .mat файлы, когда я дважды щелкните файл .mat следующие файлы показаныMatlab читает изображения, хранящиеся в массиве 4D

enter image description here

Как вы можете видеть изображения сохраняются в этой 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 
+0

Каков результат 'size dbface'? Обычно изображения не хранятся в 4D, поэтому я думаю, нам понадобится дополнительная информация, которая поможет вам. –

+0

Я обновил свое сообщение. Я не думал, что изображения обычно хранятся в 4D, поэтому я был смущен, когда открыл файл – AdamM

+0

Спросите своего коллегу. Размер и количество классов явно находятся на 3-м и 4-м измерениях, но я не был бы доволен тем, что SO даст вам последнее слово. – chappjc

ответ

0

Судя по переменным я предположил бы, что у вас есть много 64х64 изображений.

Если это так, они могут быть извлечены в качестве такого

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

Это даст вам первый, вы можете изменять последние два числа, чтобы извлечь другие.

+0

Это похоже на трюк, не могу поверить, что все было так просто. Мне просто нужно извлечь изображение, используя вышеприведенный код, за которым следуют imagesc (myExtract); colormap («серый»), а затем я могу отобразить изображение. Приветствую вас за помощь! – AdamM

Смежные вопросы