图像直方图
对于灰度图像的像素分布,可以使用直方图进行描述,即灰度值(0~255)为横坐标,像素数量为纵坐标的柱状图,例如灰度图像图像:
其像素直方图为:
图像均衡化
对于像素灰度值分布非常不均匀的图像,我们直观感受为画面较“灰”,即整体色调偏高或偏低,故我们需要对图像进行均衡化处理。
均衡化的目的是通过一种算法将不均衡的像素分布变得较为均匀,使图像看上去更加美观。
直方均衡化的公式为:
公式理解起来较为困难,举一个较为简单的例子:
MATLAB实现
为了更好的体现直方图均衡化的作用,对上述图像进行人为破坏,即将其直方图变得较为不均衡,方法是将所有灰度值按比例从0~255映射到128~255,再对其进行图像均衡化:
I = imread('1111.jpg');
I = rgb2gray(I); %获取灰度图像
[m,n]=size(I); %获取图像大小
W=I;
M=I;
for i=1:m
for j=1:n
M(i,j)=round(I(i,j)/2+256/2); %破坏图像
end
end
sum=0;
for x=0:255
for i=1:m
for j=1:n
if(M(i,j)<x || M(i,j)==x)
sum=sum+1; %获取像素值小于等于x的像素个数
end
end
end
for i=1:m
for j=1:n
if(M(i,j)==x)
W(i,j)=round(255*sum/(m*n)); %运用公式赋予新的值
end
end
end
sum=0;
end
直方图均衡化结果
再观察其直方图变化:
可以看出均衡化效果较好。
(注:源图像出自WLOP)