The BOTTOM LINE Quote Of The Day

The BOTTOM LINE Quote Of The Day

Don't Ever Tell GOD How BIG Your Problems are.
Just Tell Your Problems How BIG your GOD is ;)

Sunday, May 12, 2013

Applying Blob Detection Technique to the Original Image



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