MATLAB Answers

Calling the set of images in subfolder from augmented image datastore

15 views (last 30 days)
Rd
Rd on 30 Oct 2020
Commented: Rd on 11 Nov 2020
I have the database contain 180 images in per subfolder. I have 10 subfolder. I have to assign first 60 images in each subfolder to XTrain1, next 60 images in each subfolder to XTrain2, next 60 images in each subfolder to XTrain3.
i have included my code here. Kindly help me to loop the folders.
imagefolder = 'C:\Users\manjurama\Desktop\study\PG\PROJECT\Finger vein database multiple copy\database_10';
imds = imageDatastore(imagefolder,'IncludeSubfolders',true,'LabelSource','foldernames');
numTrainFiles = 0.75;
imageSize = [227 227];
[XTrain,YTrain] = splitEachLabel(imds, numTrainFiles,'randomize');
XTrain = augmentedImageDatastore(imageSize,XTrain);
YTrain = augmentedImageDatastore(imageSize,YTrain);
XTrain1=XTrain(1:60);
XTrain2=XTrain(61:120);
XTrain3=XTrain(121:180);

Answers (1)

drummer
drummer on 30 Oct 2020
Edited: drummer on 30 Oct 2020
By your last three lines, you can do the following:
Xtrain1 = XTrain.Files(1:60);
XTrain2 = XTrain.Files(61:120);
XTrain3 = XTrain.Files(121:160);
As you see, you're taking advantage of the augmentedImageDataStore properties. The Files, specifically. You can check them by typing your augmented variable in the command window:
>> XTrain
This is a workaround. You should work on getting each of your training files from different folders at different indexes as you mentioned.
Cheers
  5 Comments
Rd
Rd on 11 Nov 2020
Dear drummer,
As you mentioned before, i split my imagefolder into training and testing image like
trainingSetFolder/class1
trainingSetFolder/class2
.
.
.
trainingSetFolder/class10
This is the code i have used
imagefolder = 'C:\Users\manjurama\Desktop\training and testing\Training';
XTrain = imageDatastore(imagefolder,'IncludeSubfolders',true,'LabelSource','foldernames');
[XTrain1,XTrain2,XTrain3] = splitEachLabel(XTrain, 0.33,0.33, 0.33, "randomized");
YTrain = XTrain1.Labels;
the database is splitted. But the issue is i couldn't assign the folder name as label.
While using the above code, file name as assigned as labels. hence it shows 180 labels.
i need to the labels(=YTrain) as class1, class2,....class10.
Kindly help me to solve this issue. Thanks.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!