直方图均衡化
核心:重新分配不同灰度值的概率
当然matlab也有自带的均衡化函数,这样只是方便大家理解
我当时自己看均衡化函数的时候还不是特别理解,但是仔细看代码的时候就理解了,可能这又是一种学习方法吧
%% 直方图均衡化
clc
clear
G=imread('lenagrey.png'); %读入原始图像,灰度图
[M,N]=size(G);%获得原始图像的size
Y=G;%均衡后图片为Y,规格一样
%统计灰度值的概率
for i=1:256
p(i)=sum(sum(G==i-1))/(M*N);
end
%直方图均衡化公式
for i=1:256
J1=find(G==i-1);%统计灰度值对应的方格号是多少,1-M*N
Y(J1)=sum(p(1:i)*255);%sum(p(1:i)就是分布函数
end
%imwrite(Y,'junhenghua.png');
figure(1)
subplot(2,2,1);
imshow(G);
subplot(2,2,2);
imhist(G);%显示原始图像直方图
subplot(2,2,3);
imshow(Y);
subplot(2,2,4);
imhist(Y);%显示均衡化图像直方图