How to count grain in which the image is eroded?

1 visualización (últimos 30 días)
Jothika Charlees
Jothika Charlees el 20 de En. de 2017
Comentada: Walter Roberson el 20 de En. de 2017
Hi, I'm a student and doing a project in image processing. I have to label and count this image .

Respuesta aceptada

Walter Roberson
Walter Roberson el 20 de En. de 2017
Unless you expect the count to be something other than 12, you can use bwlabel()
  4 comentarios
Jothika Charlees
Jothika Charlees el 20 de En. de 2017
Editada: Walter Roberson el 20 de En. de 2017
clc;
clear all;
close all;
a=imread('grain 2.jpg');
figure
imshow(a);
title('Input image');
b=rgb2gray(a);
figure
imshow(b);
title('Grayscale image');
c=medfilt2(b,[3 3]);
figure
imshow(c);
title('Median filtered image');
d = im2bw(b,0.5);
figure
imshow(d);
title('Binarized image');
se = strel('disk',11);
e = imerode(d,se);
figure
imshow(e);
title('Eroded image');
[labeledImage, numberOfBlobs] = bwlabel(e, 8);
coloredLabelsImage = label2rgb (labeledImage, 'hsv', 'k', 'shuffle');
figure;
imshow(coloredLabelsImage);
title('Labeled Image');
this is the code i used but i don't know how to label the image grain with numbers. The attachment shows the output image that i get using this code
Walter Roberson
Walter Roberson el 20 de En. de 2017
Yes, that is a labeled image in MATLAB terms. Each different area has been given a different number, and each different number has been represented as a different color based upon the current colormap() .
Perhaps what you wanted was some text written onto each blob. If so then use regionprops() to request the Centroid . Loop through the returned information, pull out the Centroid information, and text() the appropriate label number at that location.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre 3-D Volumetric Image Processing en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by