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?

 Respuesta aceptada

Kevin Holly
Kevin Holly el 30 de En. de 2023
Editada: Kevin Holly el 30 de En. de 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 comentarios

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 el 30 de En. de 2023
Editada: Kevin Holly el 30 de En. de 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

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Develop Apps Using App Designer en Centro de ayuda y File Exchange.

Productos

Versión

R2022a

Preguntada:

el 30 de En. de 2023

Comentada:

el 30 de En. de 2023

Community Treasure Hunt

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

Start Hunting!

Translated by