第三章灰度直方图
目录
1.灰度直方图
2.直方图均衡化
3.直方图规范化
4.色彩直方图
作业
1.灰度直方图
灰度直方图(histogram)是灰度级的函数,是图象的最基本的统计特征。
它表示图象中具有每种灰度级的象素的个数,反映图象中每种灰度出现的频率。
如下图所示,
横坐标:灰度-r
纵坐标:为某一灰度值ri的像素个数ni,或是灰度出现的概率P(r)
从概率的观点来理解,灰度出现的频率可看作其出现的概率,这样直方图就对应于概率密度函数pdf(probability density function),而概率分布函数就是直方图的累积和,即概率密度函数的积分,如下图所示:
灰度直方图的计算是很简单的,依据定义,若图象具有L (通常L=256,即8位灰度级)级灰度,则大小为MxN的灰度图象f(x,y)的灰度直方图hist[0…L-1]可用如下计算获得:
1.初始化hist[k]=0 ; k=0,…,L-1
2.统计hist[k] ; x, y =0,…,M-1, 0,…,N-1
3.如果需要标准化,则hist[k]/=M*N
例:直方图算法实现
例: 通过直方图求图像中的灰度的最大、最小和中值。
例:通过直方图求图像的亮度和对比度。
注2:图像的亮度和对比度
图像的亮度(brightness ):即图像矩阵的平均值,其值越小越暗。
Brightness=图像的对比度(contrast ):即图像矩阵的均方差(标准差),对比度越大,图像中黑白反差越明显。
Contrast=1100
(,)M
N y x g x y M N −−==×∑∑
11
2
00((,))M N y x M N
g x y brightness −−==×−∑∑
1)
unsigned long hist[256]; unsigned char *pCur;
for(int i=0;i<256;i++)
hist[i]=0;
int ImgSize=width*height;
for(i=0,pCur=pImg;i<ImgSize;i++) hist[*(pCur++)]++;
2)
for (g=255;g>=0;g--)
if (hist[g])
break;
maxGray=g;
for (g=0;g<256;g++)
I f (hist[g])
break;
minGray=g;
for(g=sum=0;g<256;g++) {
sum+=hist[g];
if (sum>=ImgSize/2)
break;
}
medGray=g;
3)
for(g=sum=0;g<256;g++)
sum+=g*hist[g];
brightness=1.0*sum/ImgSize;
for(g=sum=0;g<256;g++)
sum+= (g-brightness)* (g-brightness)*hist[g]; contrast=sqrt(sum/ImgSize);
直方图具有很多的优点,直方图能反映图象的概貌,比如图像中有几类目标,目标和背景的分布如何;通过直方图可以直接计算图像中的最大亮度、最小亮度、平均亮度、对比度以及中间亮度等。
使用直方图可以完成图像分割、目标检索等。
因为不同的目标具有不同的颜色分布。
使用归一化直方图作目标匹配,还不易受到目标翻转和目标大小变化的影响。
在图像查询的系统中,直方图有很大的应用,用它存储目标的特征占有空间小,且执行速度快。
其缺点是:因其没有记录位置信息,不同的图像会具有相同或相近的直方图。
2.直方图均衡化
直方图均衡化是通过灰度变换将一幅图象转换为另一幅具有均衡直方图,即在每个灰度级上都具有相同的象素点数的过程。
P41艾
设灰度变换s=f(r)为斜率有限的非减连续可微函数,它将输入图象A(x,y)转换为输出图象B(x,y),输入图象的直方图为HA(r),输出图象的直方图为HB(s),则它们的关系可由如下过程导出:
•根据直方图的含义,经过灰度变换后对应的小面积元相等:
•由此可见,当上式中的分子和分母只差一个比例常数时,它就是常数,即:•结论:是直方图均衡化的灰度变换函数的累计分布函数(概率分布函数)离散情况下,
()()B A H s ds H r dr
=11()()(())()'()'(())A A A B H r H r H f s H s ds f r f f s dr −−===故1',()
d f f r f s d r −==其中0'()()m
A
R f r H r A =00()()()r m A m R f r H r dr R P r A ==∫001()()r
A P r H r dr A =∫其中()()m k f r R P r =0()k i k i n P r n
==∑其中
例如,
图像Lena的直方图均衡后图像Lena的直方图
原始Lena图像直方图均衡后的Lena图像
•暗的区域(手)变亮了
3.直方图规范化
•直方图规范化是指将一幅图象通过灰度变换后,使其具有特定的直方图形式,如使图象与某一标准图象具有相同的直方图,或使图象具有某一特定函数形式的直方图。
•简单地说,就是把一个图象经过灰度变化f后,使得它的直方图为Hf,即规定形状。
用途:可用来校正因亮度和传感器差异引起的变化。
比如,在比较同一个场景在不同的光照条件下的得到的两幅图像之前。
•算法:以均衡化为桥梁
•F1: H1(g1)---------- H0(s)
•F2: H2(g2)---------- H0(v)
•考虑到作为均匀分布的随机变量V和S具有完全相同的统计性质,因而从统计意义上说,它们是等同的。
因而,由s=F1(g1)和v=F2(g2)和v=s,得到g2=F2-1(v)= F2-1 (s)= F2-1 (F1(g1)) 。
4.色彩直方图
•色彩直方图是高维直方图的特例,它统计色彩的出现频率,即色彩的概率分布信息。
通常这需要一定的量化过程,将色彩分成若干互不重叠的种类。
一般不直接在RGB 色彩空间中统计,而是在将亮度分离出来后,对代表色彩部分的信息进行统计,如在HSI空间的HS子空间、YUV空间的UV子空间,以及其它反映人类视觉特点的彩色空间表示中进行。
例如,下图是统计肤色分布情况的例子。
作业
•1.编制直方图均衡化程序(输入输出图象格式bmp)。
返回本章目论。