matlab写的一个直方图规定化中的单映射程序,大家可以借鉴下
clc;
clear;
I=imread('e:\2.bmp');
figure,subplot(321),imshow(I);
title(‘原始图picture1’);
New=I;
L=256; %灰度值
[m1 n1]=size(I); %计算图像数据矩阵的行列数
Hi=zeros(L,1); % 存储源图像直方图数据
for i = 1:m1
for j = 1:n1
Hi(I(i,j)+1)=Hi(I(i,j)+1)+1; %获取像素灰度级
end
end
% 计算直方图概率统计
Pi=zeros(L,1);% 存储原图像直方图概率数据
for k=1:L
Pi(k)=Hi(k)/(m1*n1);
end
subplot(323),plot(Pi);
title('原始图直方图Pi');
% 计算累积直方图
RHi=zeros(L,1);% 存储原图像累积直方图数据
RHi(1)=Pi(1);
for k=2:L
RHi(k)=RHi(k-1)+Pi(k);
end
%subplot(325),plot(RHi);
%title('原图累积直方图RHi');
% 匹配图
J=imread('