直方图均衡与匹配
一、直方图均衡
1.算法描述
直方图均衡目的是将一张灰度级数较集中、范围小的图片转化成一张灰度级数较分散、范围广的图片,增强图像对比度。当图像直方图完全均匀分布时,图像对比度是最大的。
直方图均衡的变换函数f(x)需要满足条件:
1.f(x)在0<=x<=L−1上单调递增,其中L表示灰度级
2.f(x)的范围是0至L-1
有一个重要的函数,能够满足上面的条件: y=f(x)=(L−1)∫px(t)dt
根据上述公式,这里我用到的主要算法思路如下:
1.先统计所用像素中0到255灰度级上的像素的数量
2.然后求出概率密度函数
3.再用概率密度函数求出累积分布函数
4.将累积分布函数值域转换到0至255的映射像素表
5.然后令原图像每个像素根据原先的像素值查表找到映射的像素值。
这样,我们就建立了一个直方图均衡的映射函数了。
2.Matlab代码
函数Equalization:
Equalization.m
function eql = Equalization(img)
[height,width] = size(img);
%Pixel counter
Pixel_Num = zeros(1,256);
for i = 1:height
for j = 1: width
Pixel_Num(img(i,j) + 1) = Pixel_Num(img(i,j) + 1) + 1;
end
end
%Pixel PDF
Pixe