How do I select only 100 images in a folder of 200 images, according to a list of 100 different names ?
조회 수: 16 (최근 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
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!