1 cl; 2 img=imread('mask.jpg'); 3 imshow(img); 4 [x,y]=size(img); 5 img_man=zeros(x,y); 6 img_com=zeros(x,y); 7 8 %% 直方图均衡化算法 9 Max=max(max(img)); 10 Min=min(min(img)); 11 Hist=zeros(1,256); 12 for i=1:x 13 for j=1:y 14 Hist(img(i,j)+1)=Hist(img(i,j)+1)+1; 15 end 16 end 17 figure,plot(Hist); 18 19 p=zeros(1,256); 20 for i=1:256 21 p(i)=Hist(i)/(x*y); 22 end 23 figure,plot(p); 24 25 c=zeros(1,256); 26 for i=1:256 27 c(i)=sum(p(1:i)); 28 end 29 figure,plot(c); 30 31 for i=1:x 32 for j=1:y 33 img_man(i,j)=c(img(i,j)+1)*(Max-Min)+Min; 34 end 35 end 36 37 figure,imshow(uint8(img_man)) 38 39 Hist2=zeros(1,256); 40 for i=1:x 41 for j=1:y 42 Hist2(img_man(i,j)+1)=Hist2(img_man(i,j)+1)+1; 43 end 44 end 45 figure,plot(Hist2); 46 47 %% matlab直方图均衡化函数 48 img_com=histeq(img); 49 figure,imshow(img_com) 50 51 Hist3=zeros(1,256); 52 for i=1:x 53 for j=1:y 54 Hist3(img_com(i,j)+1)=Hist3(img_com(i,j)+1)+1; 55 end 56 end 57 figure,plot(Hist3);