将图像转换为具有均匀分布直方图的图像,这一过程叫做直方图均衡。
问题可以转换为:寻找一个变换函数,使变换后图像灰度的概率密度函数等于1,即期望输出图像中每一灰度级有相同的概率。
直方图均衡的过程:
(1)统计原始图像的归一化直方图。
(2)用累计分布函数做变换函数进行图像灰度变换。
(3)建立输入图像与输出图像灰度级之间的对应关系,将变换后灰度级恢复成原先的灰度级范围。
代码:
>> I=imread('Lena.bmp');
>> figure(1),subplot(221),imshow(I),title('original image');
>> J=rgb2gray(I);
>> imhist(J);
>> subplot(222),imhist(J),title('原始图像直方图');
>> [height,width]=size(I);
>> nk=zeros(1,256);
>> for i=1:height
for j=1:width
nk(I(i,j)+1)=nk(I(i,j)+1)+1;
end
end
>> pk=zeros(1,256);
>> pk=nk./(height*width);
>> sk=zeros(1,256);
>> sk(1)=pk(1);
>> for i=2:256
sk(i)=sk(i-1)+pk(i);
en