- Get a directory listing of all the files in your source folder.
- Read the workbook and get the class label from the appropriate column - the CSR column.
- Build a new destination filename using the class label as a folder.
- Use a for loop and copyfile to copy the files.
Hello! How to extract Images in multiple class folders through MATLAB code. I have image dataset (training,testing,evaluation) folders but I have only xlsx file with labels.
2 views (last 30 days)
Show older comments
I have image datastore (training,testing,evaluation) 47 classes dataset. I want to save images in 47 different class folders but I only have xlsx file with labels.I want to extract images from this excel labels. mean I make folder with their names(label) extract image from training etc and save the image to labels folder. if any body help me outh with this problem I will be very thankful
0 Comments
Answers (1)
Image Analyst
on 1 Dec 2022
Something like (untested)
filePattern = fullfile(inputFolder, '*.png');
imds = imageDatastore(filePattern);
t = readtable(workbookName);
classFolderNames = t.CSR;
allFileNames = imds.Files;
for k = 1 : numel(allFileNames)
% Get input file name from datastore.
sourceFileName = allFileNames{k}
[folder, baseFileNameNoExt, ext] = fileparts(sourceFileName);
% Get class name from workbook.
% Assuming the order of class assignments matches up with that in the
% datastore (NOT a good assumption though), you can do this
subFolderName = classFolderNames{k};
destinationFolder = fullfile(folder, subFolderName);
if ~isfolder(destinationFolder)
% Create subfolder if it does not exist.
mkdir(destinationFolder);
end
% Build destination file name
destinationBaseFileName = [baseFileNameNoExt, ext]; % Same name as input
destinationFullFileName = fullfile(destinationFolder, destinationBaseFileName);
% Copy file into output folder.
copyfile(sourceFileName, destinationFullFileName);
fprintf('Copied "%s" to \n "%s".\n', sourceFileName, destinationFullFileName)
end
3 Comments
Image Analyst
on 1 Dec 2022
Please wrangle your data and upload a workbook that has the file names in column 1, and the class number or name you've assigned to that image in column 2.
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!