一、直方图的意义:
以从直方图中提取的信息为基础的灰度变换函数,在诸如增强、压缩、分割、描述等方面的图像处理起着重要作用。
二、直方图的原理:
一幅数字图像在[0 G]范围内总共有L个灰度级,其直方图定义为下列离散函数:
式中,是区间[0 G]内的第k级灰度,为图像中出现这种灰度级的像素数。对于uint8类图像,G的值为255;对于uint16类图像,G的值为65535;对于浮点图像,G的值为1.0。注意,对于uint8类和uint16类图像,G=L-1。
有时,需要使用归一化直方图。用的所有元素除以图像中的总像素数n,就可以简单地得到归一化直方图:
式中,对于整数图像,k=0,1,2,........,L-1。从概率论的角度,可以认为是灰度级出现的概率的估计。
在处理直方图的工具箱中,核心函数是imhist,其基本语法如下:
h = imhist(f,b)
其中,f为输入图像,h为其直方图,b是用来形成直方图的“容器”的数目(若b为包含在此参量中,则其默认值为256)。
三、直方图的matlab实例:
f = imread('breast.tif');
g = imadjust(f,stretchlim(f),[1 0]); %增强负片图像的对比度
figure,imshow(g);
figure,imhist(g)
h = imhist(f,25); %绘制直方图
horz = linspace(0,255,25);
figure,bar(horz,h) %绘制条形图
figure,stem(horz,h,'fill') %绘制杆状图
axis([0 255 0 60000])
set(gca,'xtick',0:50:255)
set(gca,'ytick',0:20000:60000)
hc = imhist(f); %绘制直方图
figure,plot(hc) %绘制曲线图
axis([0 255 0 15000])
set(gca,'xtick',0:50:255)
set(gca,'ytick',0:2000:15000)
以下为最终的输出结果: