本文有参考CSDN上的一篇文章
function [I]=HistEq(ImageOriginal)
%OriginalImage=imread('rice.png');
OriginalImage=ImageOriginal;
[height,width]=size(OriginalImage);
I=OriginalImage;
%calculate the num of pixel
c=zeros(1,256);
for i=1:height
for j=1:width
c(I(i,j)+1)=c(I(i,j)+1)+1;
end
end
%calculate the density
d=zeros(1,256);
for i=1:256
d(i)=c(i)/(height*width*1.0);
end
%the enhanced density
p(1)=d(1);
for i=2:256
p(i)=p(i-1)+d(i);
end
%the result of enhancemnet
p=uint8(255.*p+.5);
for i=1:height
for j=1:width
I(i,j)=p(I(i,j)+1);
end
end
主函数
clc;
clear;
ImageOriginal=imread('rice.png');
gray=HistEq(Imag