Image Segmentation not working properly

3 views (last 30 days)
Shashank
Shashank on 24 Sep 2018
Commented: PeterHaultan on 7 Oct 2018
I have written a code to identify the green and black color seeds and then calculate the ratio of the area occupied by green seeds to that of black seeds. I used the color thresholder app to identify the two colors and generated 2 functions- one to segment the green color and another to segment the black. I saved the 2 segmented images in Binary format. Then I found each of the area using bwarea() and hence found out their ratio.
However, the result so obtained is not accurate. For 50:50 ratio (black:green), I get 42:68 and for 70:30, I get 40:60.
Also I am unable to use this function on other similar images with different seeds proportion. Displaying both the binary images using imshowpair(bImg, gImg, 'falsecolor'), I get :
Please tell me where I have gone wrong and what is the solution? Thank you.
  10 Comments
Shashank
Shashank on 25 Sep 2018
Is this the correct way to extract mask-2 and mask-5 from the for loop? If not, how should I extract them?
for c = 1 : numberOfClasses
subplot(3, numberOfClasses, c + numberOfClasses);
thisClass = allClasses(:, :, c);
imshow(thisClass);
caption = sprintf('Image of\nClass %d Indexes', c);
title(caption, 'FontSize', fontSize);
maskedRgbImage = bsxfun(@times, rgbImage, cast(thisClass,
'like', rgbImage));
subplot(3, numberOfClasses, c + 2 * numberOfClasses);
imshow(maskedRgbImage);
if c==2
x = maskedRgbImage;
end
if c==5
y = maskedRgbImage;
end
caption = sprintf('Class %d Image\nMasking Original', c);
title(caption, 'FontSize', fontSize);
% Make indexed image
indexedImageK(thisClass) = c;
end
mask25 = x | y;
imshow(mask25);
if true
% code
end
PeterHaultan
PeterHaultan on 7 Oct 2018
Does this help?
I = imread('lena.jpg');
I = rgb2gray(I);
[r,c] = size(I);
L = kmeans(I(:),5);
I = reshape(L,[r,c]);
mask25 = (I==2)|(I==5);

Sign in to comment.

Answers (0)

Products


Release

R2017b

Community Treasure Hunt

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

Start Hunting!