📄 hismatch.m
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -