add an slider to get value for activecontour

2 次查看(过去 30 天)
% Display segmented image
BWsIbf = activecontour(ImCh1,BWCh1, 400, 'edge');
% FinalImwithMask=imfuse(BWsIbf,ImCh1);
% imshow(FinalImwithMask);
% figure, imshow(ImCh1);
%title('Segmented Image');
[B,L] = bwboundaries(BWsIbf,'noholes');
imshow(ImCh1,[]);%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
  7 个评论
Peyman Obeidy
Peyman Obeidy 2017-3-30
编辑:Peyman Obeidy 2017-3-30
I used ceil , thanks.
There is another problem, I need the image to get updated. At the moment, it get the value and open another figure.
Peyman Obeidy
Peyman Obeidy 2017-3-30
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

请先登录,再进行评论。

回答(1 个)

Peyman Obeidy
Peyman Obeidy 2017-4-5
The final code is provided here:
https://au.mathworks.com/matlabcentral/answers/332877-update-image-in-gui-without-guide

类别

Help CenterFile Exchange 中查找有关 Interactive Control and Callbacks 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by