How to load the images using the code approach

Hello,
I have a set of images in the folder of the app project. I am trying to implement the following.
Based on the dropdown selection, a desired image should be loaded to the app window using UIAxies or Image, as shown in the screenshot.
1-How to load the images using the code approach?
2-Which is better to load the image UIAxies or Image?

 Réponse acceptée

Kevin Holly
Kevin Holly le 30 Jan 2023
Modifié(e) : Kevin Holly le 30 Jan 2023
1.
properties
folder
filename
end
% Call back for pushbutton to load image
[app.filename, app.folder] = uigetfile('*.*');
if ~ischar(app.filename); return; end %user cancel
[~,~,ext] = fileparts(app.filename);
files = dir(fullfile(app.folder,['*' ext]));
% Update dropdown box with file names in the same folder with the same extension as file loaded.
app.ImageFileDropDown.Items = {files.name};
app.ImageFileDropDown.Value = app.filename;
% Read image
Img = imread(fullfile(app.folder,app.filename)); % or imread(fullfile(app.folder,app.ImageFileDropDown.Value))
imshow(app.UIAxes) % to load on axes
app.Image.ImageSource = fullfile(app.folder,app.filename) % to load on Image
2. If you plan on ploting or playing graphical objects ontop of image, I would use app.UIAxes.

4 commentaires

Thank you.
I do not want the user to select an image from the image folder. I want the user to choose from the dropdown, and I load the appropriate image in the code. For example, in the dropdown ( cat, car, dog) let's say the user selects cat. The picture of the cat will show up in the app. Image.
Kevin Holly
Kevin Holly le 30 Jan 2023
Modifié(e) : Kevin Holly le 30 Jan 2023
In that case, I would use the Image instead of UIAxes and you can create a callback to the drop down box that does the following for each case:
Switch app.ImageFileDropDown.Value
case 'cat'
app.Image.ImageSource = 'catfile.png'
case 'dog'
app.Image.ImageSource = 'dogfile.png'
end
Thank you
You can configure ItemsData to return particular values for a choice, so you can configure Items to be the list of things the user is shown, and ItemsData to be the corresponding filenames to use.
Img = imread(fullfile(app.folder,app.filename)); % or imread(fullfile(app.folder,app.ImageFileDropDown.Value))
imshow(app.UIAxes) % to load on axes
That should be
Img = imread(fullfile(app.folder,app.filename)); % or imread(fullfile(app.folder,app.ImageFileDropDown.Value))
imshow(app.UIAxes, Img) % to load on axes

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Develop Apps Using App Designer dans Centre d'aide et File Exchange

Produits

Version

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by