Вопрос по file-io, matlab, image – Как читать изображения из папок в Matlab

1

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

Ваш Ответ

3   ответа
0

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

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

большое спасибо за ваш ответ Muaz Usmani
0

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

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

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

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

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

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

Похожие вопросы