How do I select only 100 images in a folder of 200 images, according to a list of 100 different names ?
13 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Solene Frileux
el 4 de Feb. de 2020
Comentada: Subhadeep Koley
el 6 de Feb. de 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 comentarios
Respuesta aceptada
Subhadeep Koley
el 4 de Feb. de 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 comentarios
Subhadeep Koley
el 6 de Feb. de 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
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!