img=imread("F:\E\Evaluation\cotton bulb\Average\(20).JPG");
title('Original Color Image', 'FontSize', fontSize);
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0 0 1 1]);
set(gcf, 'Toolbar', 'none', 'Menu', 'none');
set(gcf, 'Name', 'Demo by ImageAnalyst', 'NumberTitle', 'Off')
grayImage = min( img, [], 3 );
title('Gray Scale Image', 'FontSize', fontSize, 'Interpreter', 'None');
[pixelCount, grayLevels] = imhist(grayImage);
bar(grayLevels, pixelCount);
title('Histogram of original image', 'FontSize', fontSize, 'Interpreter', 'None');
xlabel('Gray Level', 'FontSize', fontSize);
ylabel('Pixel Count', 'FontSize', fontSize);
xlim([0 grayLevels(end)]);
title('Initial Binary Image', 'FontSize', fontSize);
BW = bwareaopen(BW, 400);
labeledImage = bwlabel(BW, 8);
imshow(labeledImage, []);
title('Labeled Image, from bwlabel()', 'FontSize', fontSize);
coloredLabels = label2rgb (labeledImage, 'hsv', 'k', 'shuffle');
caption = sprintf('Pseudo colored labels, from label2rgb().\nBlobs are numbered from top to bottom, then from left to right.');
title(caption, 'FontSize', fontSize);
blobMeasurements = regionprops(labeledImage, 'Area', 'Perimeter', 'EulerNumber');
numberOfBlobs = size(blobMeasurements, 1);
allPerimeters = [blobMeasurements.Perimeter];
allAreas = [blobMeasurements.Area]
allEuler = [blobMeasurements.EulerNumber];
circularities = allPerimeters .^ 2 ./ (4*pi*allAreas)
circularBlobIndexes = find(circularities < 2)
circlesImage = ismember(labeledImage, circularBlobIndexes);
caption = sprintf('Only the circular blobs.');
title(caption, 'FontSize', fontSize);
labeledImage = bwlabel(circlesImage);
blobMeasurements = regionprops(labeledImage, 'EquivDiameter');
allDiameters = [blobMeasurements.EquivDiameter]