フィルターのクリア

How to count grain in which the image is eroded?

2 ビュー (過去 30 日間)
Jothika Charlees
Jothika Charlees 2017 年 1 月 20 日
コメント済み: Walter Roberson 2017 年 1 月 20 日
Hi, I'm a student and doing a project in image processing. I have to label and count this image .

採用された回答

Walter Roberson
Walter Roberson 2017 年 1 月 20 日
Unless you expect the count to be something other than 12, you can use bwlabel()
  4 件のコメント
Jothika Charlees
Jothika Charlees 2017 年 1 月 20 日
編集済み: Walter Roberson 2017 年 1 月 20 日
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 2017 年 1 月 20 日
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.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeImages についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by