Multimodal histogram segmentation in image processing

3 views (last 30 days)
1)Select an initial estimate for T 2)Segment the image using T. This will produce two groups of pixels. G1 consisting of all pixels with gray level values >T and G2 consisting of pixels with values <=T. 3)Compute the average gray level values mean1 and mean2 for the pixels in regions G1 and G2. 4)Compute a new threshold value T=(1/2)(mean1 +mean2) 5)Repeat steps 2 through 4 until difference in T in successive iterations is smaller than a predefined parameter T0 Please give me a matlab code for this algorithm

Accepted Answer

Image Analyst
Image Analyst on 4 Feb 2014
Do not use mean2 as the variable name - that is a function built in to the Image Processing Toolbox. What happens if you just take it one step at a time, like it's trying to walk you through?
% 1)Select an initial estimate for T
T = 128;
T0 = .5;
% 2)Segment the image using T. This will produce two
% groups of pixels. G1 consisting of all pixels with gray
% level values >T and G2 consisting of pixels with values <=T.
G1 = grayImage > T;
G2 = grayImage <= T;
% 3)Compute the average gray level values mean1 and
% mean2 for the pixels in regions G1 and G2.
meanGL1 = mean(grayImage(G1))
meanGL2 = mean(grayImage(G2))
% 4)Compute a new threshold value
Tnew=(1/2) * (meanGL1 +meanGL2)
if (Tnew - T) < T0
and so on. You just need to put that into a while loop and break when the condition of little change is met. I practically did the whole thing for you. You just have to add 4 lines of code.
  1 Comment
Image Analyst
Image Analyst on 25 Apr 2014
You might or might not need to use a Gaussian filter. Can you post your image and tell me what you want to measure?

Sign in to comment.

More Answers (1)

osama
osama on 22 Apr 2014
hello interesting .. i a;lready working on it ,,,, but where is the using of histogram in ur code ?? i wiating response
greetings
  6 Comments
Christina
Christina on 25 Sep 2014
does this algorithm works for multispectral images?
Image Analyst
Image Analyst on 25 Sep 2014
Yes. You could threshold each spectral image. You can combine the thresholded binary images if needed.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!