MATLAB Answers

Displaying a set of images from a folder

2 views (last 30 days)
Hello. I need to place a button in my app that displays all the images from a folder one after another with a time delay on a UIAxes and another button that opens a figure. I'm having problems with understanding the process behind opening files via code in matlab. Can anyone help me a bit in this matter?

Accepted Answer

Walter Roberson
Walter Roberson on 19 Sep 2021
Edited: Walter Roberson on 19 Sep 2021
projectdir = 'path/to/image/directory';
ext = '.png'; %adjust according to kind of images
dinfo = dir( fullfile( projectdir, "*"+ext) );
fullnames = fullfile({dinfo.folder}, {});
nfiles = length(fullnames);
ax = app.axes1; %place you want the image to be shown
h = image(ax, []); %create image object with empty content
for K = 1 : nfiles
thisfile = fullnames{K};
[thisimg, thismap] = imread(thisfile); %handles pseudocolor and rgb both
h.CData = thisimg; %update the existing image object with the new image
if ~isempty(thismap); colormap(ax, thismap); end %if needed, update colormap
The above code does not, however, account for true grayscale images. You would detect those as thismap being empty and ndims(thisimg) is 2 .
Walter Roberson
Walter Roberson on 19 Sep 2021
ext is used in
dinfo = dir( fullfile( projectdir, "*"+ext) );
So for example from .png it would construct the string "*.png" and that becomes the pattern that dir() is to search for -- files with that extension.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!