how to find the median of histogram?

15 次查看(过去 30 天)
i am trying to implement "Dualistic Sub-Image Histogram Equalisation". where the input image needs to be subdivided into two , based on the median of the image. any suggestion would help me.

回答(2 个)

Adam
Adam 2015-8-21
Just sort all the image values and take the central one if you want the median value of an image.
If you want the median value of a histogram then just choose an odd number of bins and take the central one.
  2 个评论
Pradeep Gowda
Pradeep Gowda 2015-8-21
编辑:Image Analyst 2015-8-21
[x y]=imhist(m);
count=(sum(x(:)))/2;
will his work?
Image Analyst
Image Analyst 2015-8-21
Of course not. The median of the bin counts is not the same as the median of the image gray levels. See my answer.

请先登录,再进行评论。


Image Analyst
Image Analyst 2015-8-21
What's wrong with simply using the median() function?
theMedian = median(grayImage(:))
belowMask = grayImage <= theMedian;
aboveMask = grayImage > theMedian;
belowGray = grayImage .* uint8(belowMask);
aboveGray = grayImage .* uint8(aboveMask);
  2 个评论
Pradeep Gowda
Pradeep Gowda 2015-8-21
i guess this what i needed. One of the sub-images is equalized over the range up to the median and the other sub-image is equalized over the range from the median based on the respective histograms. Thus, the resulting equalized sub-images are bounded by each other around the input median? how do i equalzie them?
Image Analyst
Image Analyst 2015-8-21
You can use mat2gray() to scale them each to 0-1.
aboveGray = mat2gray(double(aboveGray));
Multiply by 255 if you need a uint8 image in the range 0-255
aboveGray = uint8(255 * mat2gray(double(aboveGray)));

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Histograms 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by