Image processing: finding transfer function of histogram equalization

5 次查看(过去 30 天)
Hello, lets say I have an image then I adjusted the contrast by using histogram equalization (histeq) Is there a way to plot or get an image of the transfer function that this command uses ?

采纳的回答

Image Analyst
Image Analyst 2013-11-18
Just take the histogram of the original image, then call cumsum on the pixel counts and plot it.
[pixelCounts, grayLevels] = imhist(grayImage);
cdf = cumsum(pixelCounts); % Make transfer function (look up table).
cdf = cdf / sum(cdf); % Normalize
plot(grayLevels, cdf, 'b-');
  3 个评论
Image Analyst
Image Analyst 2015-5-3
Huh? That has nothing to do with equalization, though equalization can use the cdf just like a lot of other functions do. This is just general purpose code that will compute the cdf regardless of your histogram. What do you mean by "other CDF"? What other CDF functions might there be?

请先登录,再进行评论。

更多回答(1 个)

Anand
Anand 2013-11-18
Or use the two argument syntax for histeq.
[histIm,T] = histeq(grayImage);
plot(T,'b-')
  2 个评论
Image Analyst
Image Analyst 2013-11-18
I didn't know it had that output - I guess I should have looked. Of course like I warn people histogram equalization gives a nonlinear stretch which usually looks pretty crummy and unnatural. imadjust() almost always gives a better looking image.

请先登录,再进行评论。

类别

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