Masking and removing green pixels
Show older comments
I am performing Plant disease detection.so I want to identify the mostly green colored pixels. After that, based on specified threshold value that is computed for these pixels, the mostly green pixels i want to masked as follows: if the green component of the pixel intensity is less than the pre-computed threshold value, the red, green and blue components of the this pixel is assigned to a value of zero. pleae give me solution for Masking the green pixels
2 Comments
Geoff Hayes
on 26 Oct 2014
It seems that you have a good idea on what has to be done. What have you tried so far?
Jagdish kamble
on 26 Oct 2014
Answers (2)
Image Analyst
on 26 Oct 2014
Edited: Image Analyst
on 27 Oct 2015
2 votes
See my "color detection by hue" tutorial in my File Exchange http://www.mathworks.com/matlabcentral/fileexchange/?term=authorid%3A31862 It can do this. Simply adapt the thresholds, by looking at the histograms, to select green instead of yellow.

8 Comments
Jagdish kamble
on 27 Oct 2014
Edited: Image Analyst
on 27 Oct 2014
Image Analyst
on 27 Oct 2014
There's no way graythresh() will know that green is the color you want out of all the thousands of colors in that image. You have to manually set them, just as I did in my code. Pick a hue range around .4 to .6 or so and see how that works. Like low=.4 and high=.6 or something like that. Tweak the numbers until you get what you need.
Image Analyst
on 27 Oct 2014
Edited: Image Analyst
on 27 Oct 2014
Alright I updated my demo to let you find green, yellow, red, white - whatever you specify. See attached code. Updated code should be in my File Exchange tomorrow.... http://www.mathworks.com/matlabcentral/fileexchange/28512-simple-color-detection-by-hue
Jagdish kamble
on 28 Oct 2014
Jagdish kamble
on 28 Oct 2014
Image Analyst
on 28 Oct 2014
My code should be able to pick out the green pixels but you may have to adjust the parameters to correspond what part of the color spectrum you consider to be green. Finding disease is not just color - as you can see there are many background pixels that are of a different color but are not on leaves and so they should be counted as background, not disease. You have to locate the leaves first. Then find the non-green pixels on them.
Search Vision Bib http://www.visionbib.com/bibliography/contents.html for plant disease - there are several papers on it.
Jagdish kamble
on 28 Oct 2014
saed makhool
on 27 Oct 2015
THANKS ALOT
Matt Tearle
on 27 Oct 2014
0 votes
At the risk of being accused of shameless self-promotion... I blogged about a similar problem on Steve Eddins's Image Processing blog. Perhaps some of my experiences might be of use?
Categories
Find more on Agriculture in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!