clc;
clear all;
originalImage =
imread('coins.png');
subplot(3, 3, 1);
imshow(originalImage);
% Maximize the figure window.
set(gcf, 'Position', get(0,
'ScreenSize'));
[pixelCount grayLevels] =
imhist(originalImage);
subplot(3, 3, 2);
bar(pixelCount);
title('Histogram of original image');
xlim([0 grayLevels(end)]); %
Scale x axis manually.
thresholdValue = 100;
binaryImage = originalImage >
thresholdValue;
binaryImage =
imfill(binaryImage, 'holes');
% Display the binary image.
subplot(3, 3, 3);
imagesc(binaryImage); colormap(gray(256)); title('Binary Image, obtained by
thresholding'); axis square;
labeledImage =
bwlabel(binaryImage, 8);
coloredLabels = label2rgb
(labeledImage, 'hsv', 'k', 'shuffle');
subplot(3, 3, 4); imshow(labeledImage, []);
title('Labeled Image, from
bwlabel()');
axis square; subplot(3, 3, 5);
imagesc(coloredLabels);
axis square;
caption = sprintf('Pseudo
colored labels, from label2rgb().\nBlobs are numbered from top to bottom, then
from left to right.');
title(caption);
blobMeasurements =
regionprops(labeledImage, originalImage, 'all');
numberOfBlobs =
size(blobMeasurements, 1);
subplot(3, 3, 6);
imagesc(originalImage);
title('Outlines, from
bwboundaries()'); axis square; hold
on;
boundaries =
bwboundaries(binaryImage);
numberOfBoundaries =
size(boundaries);
for k = 1 : numberOfBoundaries
thisBoundary = boundaries{k};
plot(thisBoundary(:,2), thisBoundary(:,1), 'g',
'LineWidth', 2);
end
hold off;
No comments:
Post a Comment