How to retrieve images with the same name from multiple folders?
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Sivaramakrishnan Rajaraman
am 11 Jul. 2018
Kommentiert: Sivaramakrishnan Rajaraman
am 13 Jul. 2018
I have nine different folders, each containing hundreds of images. I suspect there are a few images with the same names that are present in two or more folders. How do I retrieve only those images that are present in these nine different folders?
0 Kommentare
Antworten (1)
Walter Roberson
am 12 Jul. 2018
Untested.
projectdir = '/Users/siv/PhD/part11';
dinfo = dir(projectdir);
dinfo(~[dinfo.isfolder]) = []; %remove non-folders
dinfo( ismember({dinfo.name}, {'.', '..'}) ) = []; %delete . and ..
subdirnames = {dinfo.name};
fqsubdirnames = fullfile(projectdir, subdirnames);
numsubs = length(subdirnames);
subinfo = cell(numsubs, 1);
for K = 1 : numsubs
thisinfo = dir(fqsubdirnames{K});
thisinfo( [thisinfo.isdir] ) = []; %remove folders. This includes . and ..
subinfo{K} = {thisinfo.name};
end
allnames = horzcat(subinfo{:});
numents = cellfun(@length, subinfo);
group_breakpoints = cumsum([1; numents(:)]) .' ;
[unames, ~, uidx] = unique(allnames);
counts = accumarray(uidx, 1);
dupidx = find(counts > 1);
if isempty(dupidx)
fprintf('No duplicate names!\n');
else
fprintf('Some duplicates found!\n\n');
for K = 1 : length(dupidx)
orig_idx = find(uidx == dupidx(K));
[~, folderidx] = histc(orig_idx, group_breakpoints);
fprintf('file "%s" found in the following folders:\n', unames{dupidx(K)} );
fprintf(' %s\n', subdirnames{folderidx} );
end
fprintf('\n');
end
5 Kommentare
Image Analyst
am 13 Jul. 2018
Images can have the same name and not be duplicates so you might want to check the dates, CRC, etc. Just construct the output folder name, full file name, and then call imwrite():
Something like
outputFolder = '/Users/siv/PhD/part11/Duplicate Images' % Wherever you want.
baseFileName = sprintf('duplicate_%s', originalBaseFileName);
fullFileName = fullfile(outputFolder, baseFileName);
imwrite(theImage, fullFileName);
Obviously make needed variable name changes as appropriate.
Siehe auch
Kategorien
Mehr zu National Instruments Frame Grabbers finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!