How do I select only 100 images in a folder of 200 images, according to a list of 100 different names ?
    2 vues (au cours des 30 derniers jours)
  
       Afficher commentaires plus anciens
    
    Solene Frileux
 le 4 Fév 2020
  
    
    
    
    
    Commenté : Subhadeep Koley
    
 le 6 Fév 2020
            Hello,
I have a list of 100 different pictures.
I have the name of the 100 pictures, for instance :
bananas
strawberrys
etc
I want to select those 100 images in the folder in which there are 200 images in total.
I can do this by hand, but does anyones have an idea of code to do so ?
Thanks a lot
0 commentaires
Réponse acceptée
  Subhadeep Koley
    
 le 4 Fév 2020
        Assuming you have the required image names in a text file. Refer the code below.
myFolder = 'putYourFolderPathHere';
filePattern = fullfile(myFolder, '*.tiff'); % Change the extension according to your file extension
tiffFiles = dir(filePattern);
fid = fopen('fileNameList.txt', 'rt'); % Assuming fileNameList.txt contains the names of the required images
idx = 1;
while feof(fid) == 0
    tline = fgetl(fid);
    fileNamesToBeInc{idx} = tline;
    idx = idx+1;
end
for k = 1:length(tiffFiles)
    baseFileName = tiffFiles(k).name;
    for i = 1:length(fileNamesToBeInc)
        if strcmp(fileNamesToBeInc{i}, baseFileName)
            fullFileName = fullfile(myFolder, baseFileName);
            temp{k} = imread(fullFileName);
        end
    end
end
imageArray = temp(~cellfun('isempty',temp)); % imageArray contains your image files
% Display all the selected images
montage(imageArray);
6 commentaires
  Subhadeep Koley
    
 le 6 Fév 2020
				Yes, because your text file only contains the name of the images without their extension (e.g., .jpeg, .tiff, .png, etc.). Use the code below which appends the extension after the filenames.
myFolder = 'putYourFolderPathHere';
filePattern = fullfile(myFolder, '*.tiff'); % Change the '*.tiff' extension according to your file extension
tiffFiles = dir(filePattern);
fid = fopen('images_cent_names.txt', 'rt'); % Assuming fileNameList.txt contains the names of the required images
idx = 1;
while feof(fid) == 0
    tline = fgetl(fid);
    fileNamesToBeInc{idx} = tline;
    idx = idx+1;
end
fclose(fid);
temp = cell(1, length(fileNamesToBeInc));
% Appending extension
for k = 1:length(fileNamesToBeInc)
    fileNamesToBeInc{k} = [fileNamesToBeInc{k}, '.tiff']; % Change the '.tiff' extension also according to your file extension
end
% Reading files
idx = 1;
for k = 1:length(tiffFiles)
    baseFileName = tiffFiles(k).name;
    if ismember(baseFileName, fileNamesToBeInc)
        fullFileName = fullfile(myFolder, baseFileName);
        temp{idx} = imread(fullFileName);
        idx = idx + 1;
    end
end
imageArray = temp(~cellfun('isempty', temp)); % imageArray contains your image files
Voir également
Catégories
				En savoir plus sur Startup and Shutdown dans Help Center et File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



