Segmenting an image according a threshold
Show older comments
Say that I have a grayscale image, which values range from `[0,255]`. Say that I want the pixels which values are larger than or equal to `66` for instance to be `white`, and the rest pixels to be `black`. How can I do that in `MATLAB`?
Thanks.
Answers (2)
Image Analyst
on 30 Oct 2013
Edited: Image Analyst
on 30 Oct 2013
The easiest way by far, is to simply threshold:
binaryImage = grayImage >= 66;
Ashish's method doesn't create black pixels, and Kevin's is inefficient. My fast and efficient method will create a binary image which is used in virtually all processing afterwards, such as labeling, morphology, regionprops, hole filling, etc.
Kevin Claytor
on 30 Oct 2013
thresh = 66;
I(I < thresh) = 0;
I(I > thresh) = 255;
1 Comment
Ashish Uthama
on 30 Oct 2013
Edited: Ashish Uthama
on 31 Oct 2013
[Edit, I meant to correct Kevin's code, pointing out the need for >=]
I(I >= thresh) = 255;
Categories
Find more on Image Segmentation 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!