Azzera filtri
Azzera filtri

Read multiple images from folder and subfolder within a for loop

7 visualizzazioni (ultimi 30 giorni)
Hi,
I intend to read image files placed inside folder (.jpg) and subfolder (.bmp) within a for loop opeartion. Could someone please help me out with this ??
for f = 1:1:1
if (f>=1) && (f<=9)
fname_strt = 'B0000' ;
elseif (f>=10) && (f<=99)
fname_strt='B000';
elseif (f>=100) && (f<=999)
fname_strt='B00';
else
fname_strt='B0';
end
fname_end = num2str(f);
fname = strcat(fname_strt,fname_end,'.jpg');
I=imread(fname);
G = imagesc(x,y,flipud(I));
G.AlphaData = 0.5;
hold on;
%%%%%%% Needs to be read from subfolder
if (f>=1) && (f<=9)
fname_strt = 'B0000' ;
elseif (f>=10) && (f<=99)
fname_strt='B000';
elseif (f>=100) && (f<=999)
fname_strt='B00';
else
fname_strt='B0';
end
fname_end = num2str(f);
fname = strcat(fname_strt,fname_end,'.jpg');
h=readimx(fname);
H1 = imagesc(flipud(h));
H1.AlphaData = 0.5;
axis equal
hold on;
end

Risposte (2)

Arjun
Arjun il 21 Ago 2024
Hi,
As per my understanding, you want to read image data stored in a folder and a subfolder within a for loop.
I am assuming that you know the path to main folder, subfolder and number of files ending in .jpg are more in number.
To read image files from a folder and subfolder in MATLAB, you can use the “dir” function to list the files and construct the paths accordingly. Using the “imread” function, you can read the image file being referred by the corresponding path.
Kindly refer to the sample code below to read image files.
% Define directories
mainDir = 'path/to/main/folder'; % Replace with your main folder path
subDir = 'path/to/main/folder/subfolder'; % Replace with your subfolder path
% Get list of .jpg files in the main directory
jpgFiles = dir(fullfile(mainDir, '*.jpg'));
% Get list of .bmp files in the subdirectory
bmpFiles = dir(fullfile(subDir, '*.bmp'));
% Loop through the number of files
numFiles = length(jpgFiles);
for f = 1:numFiles
% Construct full file path for .jpg files
jpgFilePath = fullfile(mainDir, jpgFiles(f).name);
% Read and process the .jpg image
I = imread(jpgFilePath);
G = imagesc(flipud(I)); % Assuming x and y are defined elsewhere
G.AlphaData = 0.5;
hold on;
% Construct full file path for .bmp files
if f <= length(bmpFiles)
bmpFilePath = fullfile(subDir, bmpFiles(f).name);
% Read and process the .bmp image
h = imread(bmpFilePath); % Use imread for .bmp files as well
H1 = imagesc(flipud(h));
H1.AlphaData = 0.5;
axis equal;
hold on;
end
end
hold off;
Please refer to the below MATLAB documentation links for “imread”, “imagesc” and “dir” function for better understanding.
I hope this will help!

Image Analyst
Image Analyst il 21 Ago 2024
See the FAQ for code snippets:

Categorie

Scopri di più su Images in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by