hismatch.m

来自「自己编写的一个简单的matlab程序」· M 代码 · 共 60 行

M
60
字号
clc;
I1=imread('moon.tif');
I=double(I1);
[m,n]=size(I);
 H=zeros(1,256);
% for i=1:m   
%     for j=1:n        
%         H(I(i,j)+1)=H(I(i,j)+1)+1;  
%     end
% end
% figure(1);
% subplot(1,2,1);
% imshow(I1);
% title('原始图像');
% subplot(1,2,2);
% %  BAR(H,m);
% imhist(I1);
% title('原图像直方图');
% H=imhist(I1)';

s=zeros(1,256);
st=zeros(1,256); 
for i=1:256    
  s(i)=H(i)/(m*n);  
end
st=cumsum(s);
  
    
 g=rand(1,256);
 gt=zeros(1,256);
 gt(1)=g(1);
for i=2:256   
  K=i-1;
  for j=1:K    
        gt(i)=gt(i)+gt(j); %规定化直方图
  end
end
%                 s1=zeros(1,256);
%                 H1=zeros(1,256);         %这是SML映射规则
%                 for k=1:256  
%                     temp=abs(st(k)-gt); 
%                     s1(k)=min(find(temp==min(temp))); 
%                     H1(s1(k))=H1(s1(k))+s(k);
%                 end  
 s2=zeros(1,256);
 H2=zeros(1,256);        %这是GML映射规则
 for k=1:256   
     temp=abs(gt(k)-st);   
     s2(k)=min(find(temp==min(temp))); 
     H2(s2(k))=H2(s2(k))+s(k);
 end 
figure
subplot(1,2,1);
plot(gt);
title('对原图像直方图规定化');
subplot(1,2,2);
plot(H2);

                
                

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?