I need to chose between two images for postprocessing using uibuttongroup. Why is not working?

조회 수: 1 (최근 30일)
I have two images as Option 1 and Option 2.
How to make it run and user be able to chose among the two images?
Is it correct How I call it?
Img = bg;
I use
bg = uibuttongroup('Visible','off',...
'Position',[0 0 .2 1],...
'SelectionChangeFcn',@Do_plot);
r1 = uicontrol(bg,'Style',...
'radiobutton',...
'String','Option 1',...
'Position',[10 350 100 30],...
'HandleVisibility','off');
r2 = uicontrol(bg,'Style','radiobutton',...
'String','Option 2',...
'Position',[10 250 100 30],...
'HandleVisibility','off');
% Make the uibuttongroup visible after creating child objects.
bg.Visible = 'on';
Img = bg; %% This is the crucial point where the chosen image goes for more postprocessing.
function Do_plot(hObject, event, varargin)
bg = findobj(gcf,sel);
sel = bg.SelectedObject;
if isempty(sel)
return; %no buttons selected
end
sel_string = sel.String;
switch sel_string
case 'Option 1'
bg = double(croppedImage);
case 'Option 2'
bg = double(J);
end
end

답변 (1개)

Walter Roberson
Walter Roberson 2019년 2월 3일
Img = bg;
would assign Img a copy of the handle to the button group. There is no numeric index or image associated with a button group.
You are trying to use callbacks as if they are functions that return values. The only kinds of callbacks that ever return values are the callbacks that act as position filters, such as a Position Constraint callback for an imroi. Callbacks for uicontrol, uipanel, axes, button groups, plots, surfaces, contour plots, patches: it is impossible for any of those to return a value. Likewise, graphics objects do not return values either. You can ask what the current state of a graphics object is.
Perhaps you need to read How To Share Variables in Callbacks

카테고리

Help CenterFile Exchange에서 Migrate GUIDE Apps에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by