Questions about using ImageDataStore and only some subfolders in a folder

조회 수: 13 (최근 30일)
These are related, so I will ask them both here:
1. Is it possible to specify which subfolders in a folder are to be used in an ImageDataStore? For example, if you have 5 subfolders but would like to use just 3 of the subfolders in your ImageDataStore, is that possible? I cannot tell from the ImageDataStore documentation.
2. Alternatively, is it possible to create an ImageDataStore and then add to it? If #1 is not possible then I can imagine a workaround in which I add to an ImageDataStore subfolder by subfolder.

채택된 답변

HW
HW 2018년 2월 6일
Sean's suggestion was helpful, although it took a long time to run. I eventually figured out that I could import into the ImageDataStore everything in all the subfolders, using the subfolder names as labels, and then delete out everything that matched the labels I did not want to retain.

추가 답변 (2개)

Sean de Wolski
Sean de Wolski 2018년 2월 5일
편집: Sean de Wolski 2018년 2월 5일
Build files with dir. For example, all pngs at this level and below. Then strip out any you don't want or keep just the ones you do:
d = struct2table(dir(fullfile(pwd, '**','*.png')));
d = d(ismember(d.folder, folders_you_want), :);
files = fullfile(d.folder, d.name)
(Untested in MATLAB)

michael scheinfeild
michael scheinfeild 2018년 7월 18일
use filter on subfolder
dbpathSave={'mainfold\case*\Na',...
'mainfold\case*\Nb',...
'mainfold\case*\Nc',};
exts ={'.jpg'};
imds = imageDatastore( dbpathSave,'FileExtensions',exts,'IncludeSubfolders',0,'LabelSource' ,'foldernames');

카테고리

Help CenterFile Exchange에서 Argument Definitions에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by