Calling the set of images in subfolder from augmented image datastore

1 次查看(过去 30 天)
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);

回答(1 个)

drummer
drummer 2020-10-30
编辑:drummer 2020-10-30
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
  6 个评论
Rd
Rd 2020-11-11
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.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by