- 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 次查看(过去 30 天)
显示 更早的评论
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 个评论
回答(1 个)
Image Analyst
2022-12-1
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 个评论
Image Analyst
2022-12-1
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.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Image Data Workflows 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!