Effacer les filtres
Effacer les filtres

update image in GUI without GUIDE

2 vues (au cours des 30 derniers jours)
Peyman Obeidy
Peyman Obeidy le 31 Mar 2017
Commenté : Peyman Obeidy le 3 Avr 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

Réponses (1)

Image Analyst
Image Analyst le 31 Mar 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 commentaires
Image Analyst
Image Analyst le 3 Avr 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 le 3 Avr 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

Connectez-vous pour commenter.

Catégories

En savoir plus sur Visual Exploration dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by