关于提取图像直方图的程序

来源:互联网 发布:sqlmap mssql注入步骤 编辑:程序博客网 时间:2024/05/03 22:37

刚开始学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('直方图均衡后的图像');

0 0
原创粉丝点击