MATLAB Answers

Loading and processing multiple images using uigetfile

15 views (last 30 days)
William Pang
William Pang on 17 Jun 2020
Commented: Image Analyst on 18 Jun 2020
Hi,
I was wondering whether it is possible to load multiple images using uigetfile. I know how to do it with one file:
[FileName, FilePath]= uigetfile('.TIF','Select File to Open');
%If user does not select file
if [FileName,FilePath] == 0;
return;
end
I_M = imread(fullfile(FilePath, FileName));
But I'm wondering how I can use the multiselect feature with uigetfile
[file,path] = uigetfile('*.TIF','Select One or More Files','MultiSelect', 'on');
And then read multiple images using imread that runs with a for loop, something like this:
for count=1:total_images_selected
images{count}=imread(%not quite sure what to put here);
%Some analysis afterwards that basically sums the matrix values in a processed image
end
Any help would be appreciated!

  0 Comments

Sign in to comment.

Accepted Answer

Benjamin
Benjamin on 17 Jun 2020
Looks like you almost had it, but just to fill in the "%not quite sure what to put here" part:
[file,path] = uigetfile('*.TIF','Select One or More Files','MultiSelect', 'on');
if isequal(file,0)
return
end
total_images_selected = numel(file);
images = cell(1,total_images_selected);
for count = 1:total_images_selected
images{count} = imread(fullfile(path,file{count}));
% analysis
end

  2 Comments

Image Analyst
Image Analyst on 18 Jun 2020
Chances are you don't need to save all your images in a cell array, which could eat up all your memory. You can probably just process them right then and there in the loop.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!