update image in GUI without GUIDE

2 Ansichten (letzte 30 Tage)
Peyman Obeidy
Peyman Obeidy am 31 Mär. 2017
Kommentiert: Peyman Obeidy am 3 Apr. 2017
I am new to GUI without GUIDE, and I would appreciate any help in completing this function. I need it to get the value from the slider and show me the updated image.
function making_SliderForIm(ImCh1,BWCh1)
global I
global Imask
Imask=BWCh1;
I=ImCh1;
imshow(I,[]);
%create a slider
sld=uicontrol('Style', 'slider',...
'Min',1,'Max',50,'Value',41,...
'Position', [400 20 120 20],...
'Callback', @SliderVal);
function SliderVal(source,event)
val=ceil(source.Value);
% Display segmented image
BWsIbf = activecontour(I,Imask, 1+val, 'edge');
[B,L] = bwboundaries(BWsIbf,'noholes');
imshow(I,[]);%label2rgb(L, @jet, [.5 .5 .5]))
hold on
for k = 1:length(B)
boundary = B{k};
plot(boundary(:,2), boundary(:,1), 'r', 'LineWidth', 2);
end
end
end

Antworten (1)

Image Analyst
Image Analyst am 31 Mär. 2017
Simply get the value:
currentSliderValue = sld.Value;
whenever you need to retrieve the current value of the slider.
It should be as simple as that.
  11 Kommentare
Image Analyst
Image Analyst am 3 Apr. 2017
Where did you attach them? Your code here: https://www.mathworks.com/matlabcentral/answers/332877-update-image-in-gui-without-guide#comment_442232 is not a complete program.
Peyman Obeidy
Peyman Obeidy am 3 Apr. 2017
It is working nicely but slow :)
function BW2Ch1=making_SliderForIm(ImCh1,BWCh1);
% This slider UI use your image and an estimated mask as input to generate a more accurate mask. It uses the "activecontour" function in matlab as
% the main core of the code
%last edited on 04-April-2017
DemoFig = figure();
TextBox = uicontrol('Style', 'text', 'Units', 'normalized', ...
'Position', [.4 .2 .2 .05], 'String', 'Slider Value', ...
'FontSize', 12);
% a slider
Slider = uicontrol('Style', 'slider', 'Units', 'normalized', ...
'Position', [.1 .1 .8 .05], 'Min', 0, 'Max', 800, 'Value', 300,...
'SliderStep', [0.01 0.1], 'Callback', @SliderUpdate);
% a button for proceding
Button = uicontrol('Style', 'pushbutton', 'Units', 'normalized', ...
'Position', [.85 .03 .1 .06], 'String', 'Proceed', 'Callback', @buttonPush);
% will add axes for a figure on top of the slider
Axes = axes('parent', DemoFig, 'Position', [.1 .3 .8 .6]);
% the image that you have in your m code will seat here
global I
global Imask
I=ImCh1;
Imask=BWCh1;
% Imask = zeros(size(I));
% Imask(25:end-25,25:end-25) = 1;
% figure, imshow(mask);
% title('Initial Contour Location');
Image = BWCh1;
imshow(Image, 'parent', Axes);
hold on ; imshow(Imask);
axis image;
SliderListener = addlistener(Slider, 'ContinuousValueChange', @ListenerFcn);
% Callback functions
function SliderUpdate(varargin)
% Function is excecuted every time slider is RELEASED, but not while the
% slider is being moved
set(TextBox, 'String', num2str(get(Slider, 'Value')));
% Set color back to default after every time slider callback is
% executed
set(TextBox, 'BackgroundColor', get(Slider, 'BackgroundColor'));
end
function ListenerFcn(varargin)
% Function is excecuted while slider is being moved.
set(TextBox, 'String', num2str(get(Slider, 'Value')));
% To show what action is the slider callback and what is the
% listener, we'll change the color of the text box while the
% listener is active
SliderVal(Slider);
set(TextBox, 'BackgroundColor', [0.5 0.5 0.9]);
end
function SliderVal(source)
%delete(findobj('parent', Axes, 'type', 'line', 'marker', 'o'));
val=ceil(source.Value);
% Display segmented image
BW2Ch1 = activecontour(I,Imask, 1+val, 'edge');
[B,L] = bwboundaries(BW2Ch1,'noholes');
% add here
if ~isempty(B);
imshow(I,[]);%label2rgb(L, @jet, [.5 .5 .5]))
hold on
set(Axes, 'NextPlot', 'add');
for k = 1:length(B)
boundary = B{k};
plot(boundary(:,2), boundary(:,1), 'r', 'LineWidth', 2);
end
set(Axes, 'NextPlot', 'replace');
end
end
currentSliderValue = ceil(get(Slider, 'Value'));
function buttonPush(varargin)
BW2Ch1inal= activecontour(I,Imask, 1+currentSliderValue, 'edge');
close(DemoFig);
end
uiwait;
end

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Specifying Target for Graphics Output finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by