2015-01-23 2 views
0

Я выполняю последовательную обработку изображений, и я пытаюсь извлечь данные из каждого изображения в файл csv для использования в Excel.MATLAB: Сохранение имен файлов изображений в вектор

Я пытался сделать это, просто используя вектор для каждой переменной изображения вместе с именем файла.

Однако у меня возникли проблемы с созданием вектора с именами файлов в цикле обработки. Вот мой код.

ImageFolder = C:\Users\X\Documents\MATLAB\Research\Temp 
filePattern = fullfile(ImageFolder, "*.tif'); 
tifFiles = dir(filePattern); 

for k = 1:length(tifFiles) % Open sequence loop 
baseFileName = tifFiles(k).name; 
fullFileName = fullfile(ImageFolder, baseFileName); 
fprintf(1, 'Now reading %s\n', baseFileName); 
close all % Close images from previous cycle 

% skip some lines 

Count(k) = size(Areas,1) <- Works 
Porosity(k) = (sum(Areas)/(size(Istretch,1)*size(Istretch,2)))*100 
Size(k) = sum(Areas)/Number 
ImageName(k) = baseFileName <- This is wrong 

Это просто печатает 1-ю, 2-ю, 3-ю и т. Д. Буквы каждого имени файла, когда вы проходите последовательность. Я предполагаю, что здесь есть какое-то простое решение, но я не думаю об этом. Кто-нибудь может это понять для меня?

Спасибо!

ответ

2

В Matlab имя файла или любая другая «строка» - это вектор символов, а не скаляр, поэтому вы не можете назначить его одному элементу вектора. Вместо этого используйте cell: ImageName{k} = baseFileName

+0

Ah! Спасибо, очень признателен. –

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