图像的亮度直方图体现出了图像的灰度值(亮度值)出现的频率,一般用一个长度为K的一维数组表示,K为灰阶个数,默认为256。
直方图可直接由以下代码获得
[h,p]=imhist(I);
返回的h和p都是一个1*K(256)大小的矩阵,其中h的内容是256个元素的次数,p的内容为每个元素对应的灰度值。
h或用手动统计方法获得:
h=zeros(256,1);
for i=1:m
for j=1:n
gray=I(i,j);
h(gray+1,1)=h(gray+1,1)+1;
end
end
对p中所有的频数除以像素点的总数,得到频率:
h=h/sum(h);
一般这样的直方图并不连续,并可能存在多个极大极小值,可以通过以下公式进行局部平滑:
K为常量,代表平滑时区域的大小,该算法平均了一个像素(灰度)以及周围2*K个邻域点的像素的频率作为这个像素值的平均频率。
得出的矩阵可通过bar(X)绘制,并通过axes([xmin,xmax,ymin,ymax])调整x轴(像素值范围)y轴(频率)的范围。
K=5;
hf=zeros(256,1);
for i=1:size(h,1)
for j=-K:K
if i+j>=1 && i+j<=255
hf(i,1)=hf(i,1)+h(i+j,1)/(2*K+1);
end
end
end
bar(h);
axis([0,255,0,max(h)*1.1]);
figure;
bar(hf);
axis([0,255,0,max(hf)*1.1]);
左图:原始灰度直方图 右图:平滑后直方图
上图为直接执行imhist(I)结果。直方图均衡化(histeq)不述。
信息论中的熵(Entropy)由香农(Shannon)提出,可以用来表示图像中的信息量,熵的直接理解与关联于给定概率分布的事件的不确定性大小有关,可以反映概率“失调”的大小。对于图像I的灰度值概率矩阵p,熵定义为:
其中,-log2p(i)称为p(i)出现概率的惊异(surprisal),图像I 的熵E(I)是灰度概率出现惊异的期望值。
在之后的应用里,熵一般用来评估图像或其他离散变量中的信息的冗余程度。