有關於直方圖均衡化的原理我就不贅述了,想要理解的可以參考這裏點擊打開鏈接
l=imread('rice.png');
[height,width]=size(l);
figure
subplot(2,2,1);
imshow(l);
subplot(2,2,2);
imhist(l);
%進行像素灰度統計
NumPixel=zeros(1,256);
for i=1:height
for j=1:width
NumPixel(l(i,j)+1)= NumPixel(l(i,j)+1)+1;
end
end
%計算灰度分佈密度
ProbPixel=zeros(1,256);
for i=1:256
ProbPixel(i)=NumPixel(i)/(height*width*1.0);
end
%累計直方圖分佈
CumuPixel=zeros(1,256);
for i=1:256
if i==1
CumuPixel(i)=ProbPixel(i);
else
CumuPixel(i)=CumuPixel(i-1)+ProbPixel(i);
end
end
CumuPixel=uint8(255.*CumuPixel+0.5);
%對灰度值進行映射
for i=1:height
for j=1:width
l(i,j)=CumuPixel(l(i,j));
end
end
subplot(2,2,3)
imshow(l)
subplot(2,2,4)
imhist(l)