How to select every 10 images corresponding to one image?
3 views (last 30 days)
Show older comments
Suppose we have two folders A and B , both contain images.
Let folder A have 6 images:a1,a2,...,a6
folder B have 60 images: b1,b2,...,b60.
I want to select 10 images in B for each image in A, in the following way
for a1 select b1,b2,...,b10
for a2 select b11,b12,...,b20
.
.
.
for a6 select b51,b52,...,b60
0 Comments
Accepted Answer
Kevin Holly
on 20 Sep 2021
%Select image folder A
A_dir = uigetdir();
%Select image folder B
B_dir = uigetdir();
%Identify files of interest
A_files=dir(fullfile(A_dir,'*.tif')); %Here, I am assuming the images are TIFF files and all file types are the same. Change this to .png, .jpg, or .bpm...etc if needed.
B_files=dir(fullfile(B_dir,'*.tif')); % * is a wildcard
%Load images
for i = 1:length(A_files)
A_image = imread([A_dir,filesep,A_files(i).name]);
if i == 1
for ii = 1:10
B_images(ii,:,:) = imread([B_dir,filesep,B_files(ii).name]);
end
else
for ii = 1:10
B_images(ii,:,:) = imread([B_dir,filesep,B_files((i-1)*10+(ii-1).name]);
end
end
end
4 Comments
Kevin Holly
on 21 Sep 2021
Edited: Kevin Holly
on 21 Sep 2021
%Load images
A = [];
for i = 1:length(A_files)
A_image = imread([A_dir,filesep,A_files(i).name]);
if i == 1
for ii = 1:10
B_images(ii,:,:) = imread([B_dir,filesep,B_files(ii).name]);
A = [A; {A_image} {B_images(ii,:,:)}]
end
else
for ii = 1:10
B_images(ii,:,:) = imread([B_dir,filesep,B_files((i-1)*10+(ii-1)).name]);
A = [A; {A_image} {B_images(ii,:,:)}]
end
end
end
More Answers (0)
See Also
Categories
Find more on Image Processing Toolbox in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!