How do I select only 100 images in a folder of 200 images, according to a list of 100 different names ?
4 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Subhadeep Koley
2020-2-4
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 个评论
Subhadeep Koley
2020-2-6
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
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Import, Export, and Conversion 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!