Как читать изображения из папок в Matlab

У меня шесть таких папок, как & gt; & gt;Изображений и каждая папка содержит несколько изображений. Я знаю, как читать изображения в Matlab, НО мой вопрос заключается в том, как я могу перемещаться по этим папкам и читать изображения в файле abc.m (этот файл показан в этомобраз) любая помощь будет полезна. заранее спасибо.

Ответы на вопрос(3)

конечно, щелкнуть правой кнопкой мыши на forlder в matlab и "Добавить в путь". & GT; & GT; & quot; Выбранные папки и подпапки & quot;

Тогда вы можете просто получить изображения сimread без указания пути.

 Muaz Usmani27 мая 2012 г., 22:10
большое спасибо за ваш ответ
Решение Вопроса

в основном вы хотите читать изображения в разных папках, не помещая все изображения в одну папку и не используяimread()? Потому что вы можете просто скопировать все изображения (и назвать их так, чтобы вы знали, из какой они папки), в рабочий каталог MATLAB, а затем загрузить их таким образом.

Использоватьcd Команда для изменения каталогов (как в * nix), а затем загружать / читать изображения, когда вы просматриваете каждую папку. Вам могут понадобиться абсолютные пути.

 27 мая 2012 г., 22:08
Без кавычек, просто:cd ..  Кроме того, если вы знаете абсолютный путь родительского каталога, вы также можете использовать его.
 Muaz Usmani27 мая 2012 г., 22:06
средстваcd '..'; переместит меня в родительский каталог?
 27 мая 2012 г., 23:39
цитатыare needed когда вы используете его как функцию! увидетьmathworks.nl/help/techdoc/matlab_prog/f10-60415.html#f10-60461
 27 мая 2012 г., 22:02
cd ..   . ссылается на текущий каталог,.. относится к его родителю.
 Muaz Usmani27 мая 2012 г., 22:00
спасибо, как насчет возврата к предыдущему (родительскому) каталогу? как в DOS егоcd..

содержащему изображение, вы можете использоватьреж на нем перечислить все файлы (и каталоги) в нем. Фильтруйте файлы с нужным вам расширением изображения и вуаля, у вас есть массив со всеми изображениями в указанном вами каталоге:

dirname = 'images';
ext = '.jpg';

sDir=  dir( fullfile(dirname ,['*' ext]) );;
sDir([sDir.isdir])=[]; % remove directories

% follow устарел, потому что dir ^^
b=arrayfun(@(x) strcmpi(x.name(end-length(ext)+1:end),ext),sDir); % filter on extension
sFiles = sDir(b);

Возможно, вы захотите добавить префикс имени каждого файла в каталог перед использованием:

sFileName(ii) = fullfile(dirname, sFiles(ii));

Вы можете обработать полученные файлы, как хотите. Загрузка всех файлов, например:

for ii=1:numel(sFiles)
    data{i}=imread(sFiles(ii).name)
end

Если вы также хотите просмотреть подкаталоги, я предлагаю вам взглянуть на:

Как получить все файлы в определенном каталоге в MATLAB?

или другие решения наFEX:

http://www.mathworks.com/matlabcentral/fileexchange/8682-dirr-find-files-recursively-filtering-name-date-or-bytes

http://www.mathworks.com/matlabcentral/fileexchange/15505-recursive-dir

РЕДАКТИРОВАТЬ: добавлено предложение Амро о подстановочном знаке вызова dir

 27 мая 2012 г., 23:58
вместо ручной фильтрации файлов вы можете указать что-то вроде:dir('folder\*.ext'), Вот пример:stackoverflow.com/a/7293443/97160
 28 мая 2012 г., 00:41
@Amro: Я думал, что такой шаблон не работает .. Я думаю, что я путаю его с чем-то другим: спасибо за совет!

Ваш ответ на вопрос