Displaying an image on UIAxes in App Designer that doesn't appear

2 次查看(过去 30 天)
Hey there,
I've been trying to design a GUI in the app designer that estimates noise, it:
  1. Takes an image specified by the user, image appears on UIAxes2
  2. User selects a type of noise to add
  3. Image with noise added is displayed again on UIAxes2
Please advise.
The original selected image appears just fine but when I want the noisy image to appear, it doesn't. Here are screenshots of the code + the App
  1. Original Image button callback code
function UploadImageButtonPushed(app, event)
[filename,filepath] = uigetfile({ '*.*;*.jpg;*.png;*.bmp;*.oct' }, 'Select File to Open');
fullname = [filepath, filename];
file = imread(fullname);
global pic
pic=im2gray(file);
image1=im2double(pic);
imshow(image1, 'parent', app.UIAxes2)
end
2. Noisy image button callback code
% Button pushed function: ApplyNoiseButton
function ApplyNoiseButtonPushed(app, event)
global image1
global noisy
if (strcmp(app.SelectTypeofNoisetoAddDropDown.Value,'Salt & Pepper'))
noisy = imnoise(image1, 'salt & pepper');
elseif(strcmp(app.SelectTypeofNoisetoAddDropDown.Value, 'Gaussian'))
noisy = imnoise(image1, 'gaussian', 0, 0.01);
elseif(strcmp(app.SelectTypeofNoisetoAddDropDown.Value,'Speckle'))
noisy = imnoise(image1, 'speckle');
else
noisy=image1;
end
imshow(noisy,'parent', app.UIAxes2)
end
Screenshots of GUI:

采纳的回答

Geoff Hayes
Geoff Hayes 2021-5-14
Ahmed - I suspect the problem is with your variable for image1. It is declared as a global variable in ApplyNoiseButtonPushed function, but it is a local variable in the UploadImageButtonPushed function. I suppose that you could use pic instead or find an alternative to using global variables. Perhaps save the image as a property to the app object.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Develop Apps Using App Designer 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by