您的位置:首页 > 编程语言 > MATLAB

matlab 的直方图均衡化

2014-04-16 15:06 190 查看
histeq



功能:直方图均衡化。

用法:

J = histeq(I,hgram) 将原始图像I的直方图变成用户指定的向量hgram。hgram中的各元素的值域为[0,1]。

J = histeq(I,n) 指定直方图均衡后的灰度级数n,默认值为64。

[J,T] = histeq(I,...) 返回从能将图像I的灰度直方图变换成图像J的直方图变换T。

newmap = histeq(X,map,hgram)

newmap = histeq(X,map)

[newmap,T] = histeq(X,...)

这三个是针对索引图像调色板的直方图均衡化,用法和灰度图像的一样。

举例:

I = imread('tire.tif');

J = histeq(I);

imshow(I)

figure, imshow(J)

>> f = imread('C:\Users\Administrator\Desktop\an.jpg');

>> fg = rgb2gray(f);

>> figure,imhist(fg)

>> imshow(fg)

>> figure,imhist(fg)

>> ylim('auto')

>> g = histeq(fg,256); %直方图均衡化。

>> figure , imshow(g)

>> figure , imhist(g) %显示直方图

下面是效果:

均值化前:



均值化后:



在之后的图片中我们可以得到更多的信息。

累积分布函数(cdf)

>> hnorm = imhist(fg)./numel(fg);

>> cdf = cumsum(hnorm);

>> x = linspace(0,1,256);

>> plot(x,cdf)

>> axis([0 1 0 1])

>> set(gca,'xtick',0:.2:1)

>> set(gca,'ytick',0:.2:1)

>> xlabel('Input intensity values','fontsize',9)

>> ylabel('Output intensity values','fontsize',9)

>> text(0.18,0.5,'Transformation function','fontsize',9)

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: