Which segmentation method process by the following MATLAB code ?
Show older comments
[img] = imread('test.jpg');
img = rgb2gray(img);
tolerance = 12; % default setting in imageSegmenter
%% >>>>>>>>>> GET INITIALIZATION POINTS <<<<<<<<<< %%
str = 'Click to select initialization points. Press ENTER to confirm.';
fig_sel = figure(); imshow(img);
title(str,'Color','b','FontSize',10);
fprintf(['\nNote: ' str '\n'...
'Pressing ENTER ends the selection without adding a final point.\n' ...
'Pressing BACKSPACE/DELETE removes the previously selected point.\n'] );
% select points in figure and close afterwards
[x, y] = getpts(fig_sel);
close(fig_sel);
%% >>>>>>>>>> PROCESS INITIALIZATION POINTS <<<<<<<<<< %%
if length(x) == 0
fprintf('\nError: No points specified. An initialization point is needed!');
else
segmentations = zeros([size(img) length(x)]);
fig_result = figure(); hold on;
for i = 1:length(x)
% confusing: y corresponds to row, x to column in img
column = ceil(x(i));
row = ceil(y(i));
%>>> this is where the magic happens <<<%
segmentations(:,:,i) = grayconnected(img,row,column,tolerance);
% show corresponding initialization point
subplot(1,2,1); imshow(img); hold on;
title('Active point (red)');
plot(x(i),y(i),'r.','MarkerSize',10); % active in red
plot(x(1:end ~= i),y(1:end ~= i),'b.','MarkerSize',5); % ... others in blue
hold off;
% ... with segmentation result
title('Segmentation result');
subplot(1,2,2); imshow(segmentations(:,:,i));
% click through results
waitforbuttonpress
end
close(fig_result);
end
Answers (0)
Categories
Find more on Get Started with Statistics and Machine Learning Toolbox 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!