How to use First button function codes "symbol name" in Second button function in App Designer

1 view (last 30 days)
I have an image. In app designer , I use "axes application" to add image there. When I click first button I add image and show it in Axes area.
I added second button . In second button I want to filter that same image when I click it.
For example my image name is "imgf" and I use imshow(img) when I click first button and show it. I want to use that "imgf" in my second button. But it gives error.
Because that "imgf" belongs to in first button function codes. How will I use that "imgf" in my second button function codes.
Codes are below
% Callbacks that handle component events
methods (Access = private)
% Button pushed function: SelectAnImageButton
function SelectAnImageButtonPushed(app, event)
global imgf;
[filename pathname]= uigetfile({'*.jpg'},"Open file");
fullpathname= strcat(pathname,filename);
imgf=imread(fullpathname);
if(size(imgf,3)>1)
imgf=rgb2gray(imgf);
end
imshow(imgf,'parent',app.UIAxes);
end
% Button pushed function: FilterTheImageButton
function FilterTheImageButtonPushed(app, event)
img=imgaussfilt(imgf); % I want to use "imgf" in here to filter the image
imshow(img,'parent',app.UIAxes);
end
end
  2 Comments
Ali Zulfikaroglu
Ali Zulfikaroglu on 3 Mar 2021
I want to also use third button. In Third button I want to use roipoly command to draw a circle on image.
But I should use filtered image in second function and continue with that "img" in third button function .
mask=roipoly(img);
How will I draw a circle with using roipoly command on uıaxes ?

Sign in to comment.

Accepted Answer

Rik
Rik on 3 Mar 2021
Don't use global variables. There are many other ways to share data between callbacks. You should probably store the variable in a property.
  4 Comments
Ali Zulfikaroglu
Ali Zulfikaroglu on 3 Mar 2021
I realised my mistake at property .
And it should be added app.
properties (Access = private)
t % Using this description
end
% Callbacks that handle component events
methods (Access = private)
% Button pushed function: SelectAnImageButton
function SelectAnImageButtonPushed(app, event)
global imgf;
[filename pathname]= uigetfile({'*.jpg'},"Open file");
fullpathname= strcat(pathname,filename);
imgf=imread(fullpathname);
if(size(imgf,3)>1)
imgf=rgb2gray(imgf);
end
imshow(imgf,'parent',app.UIAxes);
app.t=imgf % t is in here property function and it should be app.t
end
% Button pushed function: FilterTheImageButton
function FilterTheImageButtonPushed(app, event)
img=imgaussfilt(app.t);
imshow(img,'parent',app.UIAxes);
end
end

Sign in to comment.

More Answers (0)

Categories

Find more on Migrate GUIDE Apps in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!