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

matlab实现灰度直方图均匀化

2015-10-15 17:09 375 查看
p=imread('test.jpg');

figure(1);

imshow(p);

p=rgb2gray(p); %转换为灰度图像

figure(11);

imshow(p);

figure(2);

imhist(p);  %显示灰度分布图

figure(1234);

histgram=zeros(1,256); %灰度统计数组

[m,n]=size(p);

for i=1:m

    for j=1:n

        k=p(i,j);

        histgram(k+1)=histgram(k+1)+1;

    end

end

x=1:255;

plot(x,histgram(x));

%以上为灰度的分布情况

%计算每一个点的概率值

all=m*n;

histgram(1)=histgram(1)/all;

for i=2:255

    histgram(i)=histgram(i)/all;

    histgram(i)=histgram(i-1)+histgram(i);

end

figure(3);

x=1:255;

plot(x,histgram(x));

%开始计算新的灰度值

for i=1:m

    for j=1:n

        k=p(i,j);

        p(i,j)=histgram(k+1)*256;

    end

end

%显示直方均匀化后的图像

figure(4);

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