How do i get both healthy and unhealthy portion of an image segmented?

I am doing a image processing based project to detect plant pathology. I have written a code and the segmented output that i have got contains only the healthy portion of the leaf. I guess the problem is with the thresholding . How do i get the proper segmented output. I have attached the code and sample image.

 Accepted Answer

You need to get the background. Then the diseased part is just
diseasedMask = ~(healthLeafMask | backgroundMask);
Use color segmentation to get the background, just like you already did to get the healthy part, except that you want white instead of green.
Why are you so in love with cell arrays? You are using them for no reason and just making your code more complicated. Plus there are too many loops. There is no reason to use cell arrays to store those images.

3 Comments

I am new to matlab, i have to read many images together so i have to go for cell arrays right? please correct me if i am wrong. How do i get the background mask?
No, that's not correct. There is no need to use cell arrays in your situation. You can have a single loop and just read in and process the image all in that one loop. No need to save each image in a cell array unless you need to call it later in your program, which you don't.
See the FAQ for preferred methods:

Sign in to comment.

More Answers (0)

Categories

Find more on Agriculture in Help Center and File Exchange

Asked:

on 25 Oct 2015

Commented:

on 25 Oct 2015

Community Treasure Hunt

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

Start Hunting!