您的位置:首页 > 其它

绘制图像直方图

2015-09-03 17:58 405 查看
刚开始学matlab,昨天在看程序的忘记把彩色图像转换成灰度图像再提取图像。

 clear all;

I = imread('D:\frame1.png'); 

I=rgb2gray(I);  %灰度化

 

%绘制直方图 

[m,n]=size(I); 

GP=zeros(1,256);

for k=0:255 

     GP(k+1)=length(find(I==k))/(m*n);  %计算每级灰度出现的概率,将其存入GP

 end 

%三,直方图均衡化 

S1=zeros(1,256); 

for i=1:256

    for j=1:i 

          S1(i)=GP(j)+S1(i);

    end 

end 

S2=round((S1*256)+0.5); %将Sk归到相近级的灰度 

for i=1:256 

    GPeq(i)=sum(GP(find(S2==i)));%计算现有每个灰度级出现的概率 

end 

figure;

subplot(221);bar(0:255,GP,'b');  

title('原图像直方图') 

subplot(222);bar(0:255,GPeq,'b') 

title('均衡化后的直方图') 

X=I;

for i=0:255

    X(find(I==i)) = S2(i+1);

end

subplot(223);imshow(I);

title('原图像') ;

subplot(224);imshow(X);

title('直方图均衡后的图像');
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  图像处理