灰度直方图
- 格式:ppt
- 大小:611.50 KB
- 文档页数:12
图像处理6灰度直⽅图和直⽅图均衡化灰度直⽅图介绍灰度直⽅图(Gray histogram)是关于灰度级分布的函数,是对图像中灰度级分布的统计。
灰度直⽅图是将数字图像中的所有像素,按照灰度值的⼤⼩,统计其出现的频率。
灰度直⽅图是灰度级的函数,它表⽰图像中具有某种灰度级的像素的个数,反映了图像中某种灰度出现的频率。
如果将图像总像素亮度(灰度级别)看成是⼀个随机变量,则其分布情况就反映了图像的统计特性,这可⽤probability density function (PDF)来刻画和描述,表现为灰度直⽅图。
实现以下代码便于理解灰度直⽅图的计算,其中histogram函数是基于numpy简化的,运⾏结果如下。
# coding: utf8from skimage import dataimport matplotlib.pyplot as pltimport numpy as npdef histogram(a, bins=10, range=None):"""Compute the histogram of a set of data."""import numpy as npfrom numpy.core import linspacefrom numpy.core.numeric import (arange, asarray)# 转成⼀维数组a = asarray(a)a = a.ravel()mn, mx = [mi + 0.0 for mi in range]ntype = np.dtype(np.intp)n = np.zeros(bins, ntype)# 预计算直⽅图缩放因⼦norm = bins / (mx - mn)# 均分,计算边缘以进⾏潜在的校正bin_edges = linspace(mn, mx, bins + 1, endpoint=True)# 分块对于⼤数组可以降低运⾏内存,同时提⾼速度BLOCK = 65536for i in arange(0, len(a), BLOCK):tmp_a = a[i:i + BLOCK]tmp_a_data = tmp_a.astype(float)# 减去Range下限,乘以缩放因⼦,向下取整tmp_a = tmp_a_data - mntmp_a *= normindices = tmp_a.astype(np.intp)# 对indices标签分别计数,标签等于bins减⼀indices[indices == bins] -= 1n += np.bincount(indices, weights=None,minlength=bins).astype(ntype)return n, bin_edgesif__name__ =="__main__":img=data.coffee()fig = plt.figure()f1 = fig.add_subplot(141)f1.imshow(img)f1.set_title("image")f2 = fig.add_subplot(142)arr=img.flatten()n, bins, patches = f2.hist(arr, bins=256, facecolor='red')f2.set_title("plt_hist")f3 = fig.add_subplot(143)hist, others = np.histogram(arr, range=(0, arr.max()), bins=256)f3.plot(others[1:],hist)f3.set_title("np_hist1")f4 = fig.add_subplot(144)hist, others = histogram(arr, range=(0, arr.max()), bins=256)f4.plot(others[1:], hist)f4.set_title("np_hist2")plt.show()关于bincount函数,可以参考Xurtle的博⽂https:///xlinsist/article/details/51346523bin的数量⽐x中的最⼤值⼤1,每个bin给出了它的索引值在x中出现的次数。
灰度直方图的用途灰度直方图(grayscale histogram)是一种统计图表,用于表示图像中每个灰度级别的像素数量。
它将图像的灰度级别作为横坐标,像素数量作为纵坐标,能够直观地展示图像中各个灰度级别像素的分布情况。
灰度直方图在计算机视觉和图像处理领域有着广泛的应用,以下将详细介绍它的用途。
1. 图像增强与调整灰度直方图可以帮助我们快速了解图像的亮度分布情况。
通过观察图像的灰度直方图,我们可以判断图像的亮度范围,并根据需要进行图像增强和调整。
例如,如果图像的灰度分布集中在较低的亮度范围,我们可以通过直方图均衡化等算法来增强图像的对比度,使得图像更加清晰明亮。
2. 图像分割与阈值处理利用灰度直方图,我们可以选择适当的阈值来进行图像分割。
图像分割是将图像划分为几个具有独立意义的区域,常用于目标检测和图像识别等应用。
通过分析灰度直方图可以确定一个或多个阈值,将图像分割成不同的区域,从而提取出感兴趣的目标。
3. 图像质量评估灰度直方图可以用于图像质量的评估和比较。
不同的图像质量可能对应着不同的灰度分布情况,通过对比不同图像的灰度直方图,我们可以直观地了解图像的细节信息和对比度。
在图像压缩、图像传输和图像复原等应用中,可以通过灰度直方图的对比来评估图像的质量,并确定是否需要使用图像增强或去噪等算法来改善图像的质量。
4. 图像匹配与检索利用灰度直方图可以进行图像的匹配与检索。
在图像数据库中,通过计算图像的灰度直方图,我们可以建立索引来加速图像的匹配和搜索。
通过对比查询图像与数据库中图像的灰度直方图相似性,可以找到与查询图像最相似的图像,从而实现图像的检索和识别。
5. 图像分类与识别灰度直方图也可用于图像分类与识别。
通过将图像的灰度直方图作为特征向量,我们可以训练分类器或者使用统计模型来对图像进行分类和识别。
例如,基于灰度直方图的人脸识别算法可以通过计算人脸图像的灰度直方图来进行人脸匹配和识别。
6. 图像分析与检测利用灰度直方图还可以进行图像的分析与检测。
第三章图像灰度直方图变换在数字图像处理中,灰度直方图是最简单且最有用的工具,可以说,对图像的分析与观察直到形成一个有效的处理方法,都离不开直方图。
直方图的定义:一个灰度级别在范围[0,L-1]的数字图象的直方图是一个离散函数p(rk)= nk/nn 是图象的像素总数,nk是图象中第k个灰度级的像素总数,rk 是第k个灰度级,k = 0,1,2,…,L-直方图的性质1)灰度直方图只能反映图像的灰度分布情况,而不能反映图像像素的位置,即丢失了像素的位置信息。
2)一幅图像对应唯一的灰度直方图,反之不成立。
不同的图像可对应相同的直方图。
直方图的应用:用来判断图像量化是否恰当灰度变换一、对比度展宽的目的:是一点对一点的灰度级的影射。
设新、旧图的灰度级分别为g 和f,g和f 均在[0,255]间变化。
目的:将人所关心的部分强调出来。
对比度展宽方法:二、灰级窗:只显示指定灰度级范围内的信息。
如: α=γ=0三、灰级窗切片:只保留感兴趣的部分,其余部分置为0。
直方图均衡化算法:设f、g分别为原图象和处理后的图像。
求出原图f的灰度直方图,设为h。
h为一个256维的向量。
求出图像f的总体像素个数Nf=m*n (m,n分别为图像的长和宽)计算每个灰度级的像素个数在整个图像中所占的百分比。
hs(i)=h(i)/Nf (i=0,1, (255)3)计算图像各灰度级的累计分布hp。
4)求出新图像g的灰度值。
作业1. 在图像灰度变换处理中,请总结出线性变换,非线性变换的适应性及各自的特点?. 已知一幅图像为:∑==ikkhihp)()(255,...,2,1=i⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡=22789321227881112388712439881228291010636921001001073910101002552547120025520010022525551f请对其进行灰度直方图的均衡化处理。
图像增强—灰度变换及直方图均衡化一、实验目的1、了解图像增强的目的及意义,加深对图像增强的感性认识,巩固所学理论知识。
2、掌握直接灰度变换的图像增强方法。
3、掌握灰度直方图的概念及其计算方法;4、掌握直方图均衡化的计算过程;二、实验原理及知识点1、图像增强是指按特定的需要突出一幅图像中的某些信息,同时,消弱或去除某些不需要的信息的处理方法。
其主要目的是处理后的图像对某些特定的应用比原来的图像更加有效。
图像增强可以在空间域中执行,也可以在变换域中执行。
2、空间域指的是图像平面本身,在空间域内处理图像是直接对图像的像素进行处理。
空间域处理方法分为两种:灰度级变换、空间滤波。
空间域技术直接对像素进行操作,其表达式为g(x,y)=T[f(x,y)]其中f(x,y)为输入图像,g(x,y)为输出图像,T是对图像f进行处理的操作符,定义在点(x,y)的指定邻域内。
定义点(x,y)的空间邻近区域的主要方法是,使用中心位于(x,y)的正方形或长方形区域。
此区域的中心从原点(如左上角)开始逐像素点移动,在移动的同时,该区域会包含不同的邻域。
T应用于每个位置(x,y),以便在该位置得到输出图像g。
在计算(x,y)处的g值时,只使用该领域的像素。
2、灰度变换T的最简单形式是使用领域大小为1×1,此时,(x,y)处的g值仅由f在该点处的亮度决定,T也变为一个灰度变换函数。
由于灰度变换函数仅取决于亮度的值,而与(x,y)无关,所以亮度函数通常可写做如下所示的简单形式:s=T(r)其中,r表示图像f中相应点(x,y)的亮度,s表示图像g中相应点(x,y)的亮度。
灰度拉伸又叫对比度拉伸是最基本的一种灰度变换,使用简单的分段线性变换函数,可以提高灰度的动态范围,适用于低对比度图像的处理,增强对比度。
3、直方图是多种空间城处理技术的基础。
直方图操作能有效地用于图像增强。
除了提供有用的图像统计资料外,直方图固有的信息在其他图像处理应用中也是非常有用的,如图像压缩与分割。
《数字图像处理》试卷答案(2009级)一、名词解释(每题4分,共20分)1.灰度直方图:灰度直方图(histogram)是灰度级的函数,它表示图象中具有每种灰度级的象素的个数,反映图象中每种灰度出现的频率。
它是多种空间域处理技术的基础。
直方图操作能够有效用于图像增强;提供有用的图像统计资料,其在软件中易于计算,适用于商用硬件设备。
灰度直方图性质:1)表征了图像的一维信息。
只反映图像中像素不同灰度值出现的次数(或频数)而未反映像素所在位置。
2)与图像之间的关系是多对一的映射关系。
一幅图像唯一确定出与之对应的直方图,但不同图像可能有相同的直方图。
3)子图直方图之和为整图的直方图。
2.线性移不变系统:一个系统,如果满足线性叠加原理,则称为线性系统,用数学语言可作如下描述:对于,若T[a+b]=aT[]+bT[]=a+b(2.15)则系统T[·]是线性的。
这里,、分别是系统输入,、分别是系统输出。
T[·]表示系统变换,描述了输入输出序列关系,反映出系统特征。
对T[·]加上不同的约束条件,可定义不同的系统。
一个系统,如果系统特征T[·]不受输入序列移位(序列到来的早晚)的影响,则系统称为移不变系统。
由于很多情况下序号对应于时间的顺序,这时也把“移不变”说成是“时不变”。
用数学式表示:对于y(n)= T[x(n)] 若y(n-)=T[x(n-)] (2.16)则系统是移不变的。
既满足线性,又满足移不变条件的系统是线性移不变系统。
这是一种最常用、也最容易理论分析的系统。
这里约定:此后如不加说明,所说的系统均指线性移不变/时不变系统,简称LSI/LTI系统。
3.图像分割:为后续工作有效进行而将图像划分为若干个有意义的区域的技术称为图像分割(Image Segmentation)而目前广为人们所接受的是通过集合所进行的定义:令集合R代表整个图像区域,对R的图像分割可以看做是将R分成N个满足以下条件的非空子集R1,R2,R3,…,RN;(1)在分割结果中,每个区域的像素有着相同的特性(2)在分割结果中,不同子区域具有不同的特性,并且它们没有公共特性(3)分割的所有子区域的并集就是原来的图像(4)各个子集是连通的区域4.数字图像处理:数字图像处理(Digital Image Processing)又称为计算机图像处理,它是指将图像信号转换成数字信号并利用计算机对其进行处理的过程。
1.灰度直方图灰度直方图(histogram)是灰度级的函数,它表示图象中具有每种灰度级的象素的个数,反映图象中每种灰度出现的频率。
如下图所示,灰度直方图的横坐标是灰度级,纵坐标是该灰度级出现的频率,是图象的最基本的统计特征。
从概率的观点来理解,灰度出现的频率可看作其出现的概率,这样直方图就对应于概率密度函数pdf(probability density function),而概率分布函数就是直方图的累积和,即概率密度函数的积分,如下图所示:若直接从代表每种灰度的象素数目的直方图来观察,常用如下的表示:drr dP r p dr r p r P r)()(,)()(0==⎰∑⎰⎰⎰===≈======ki ik k k k k rrnnr P n n r p n r n A dAr p dr drr H A r P A drr dA A r H r p drr H A dr r H r A 00000025500)()()(1)(1)(,/)()()()()(,)()(,而概率分布函数,则概率密度的象素数为,灰度为若记象素总数为,时,在离散情况下,取概率密度象素总数一幅图象的总面积,或灰度直方图的计算是很简单的,依据定义,若图象具有L(通常L=256,即8位灰度级)级灰度,则大小为MxN的灰度图象f(x,y)的灰度直方图hist[0…L-1]可用如下计算获得:1. 1.初始化 hist[k]=0 ; k=0,…,L-12. 2.统计 hist[f(x,y)]++ ; x, y =0,…,M-1, 0,…,N-13. 3.标准化 hist[f(x,y)]/=M*N2.直方图均衡化直方图均衡化是通过灰度变换将一幅图象转换为另一幅具有均衡直方图,即在每个灰度级上都具有相同的象素点数的过程。
设灰度变换s=f(r)为斜率有限的非减连续可微函数,它将输入图象A(x,y)转换为输出图象B(x,y),输入图象的直方图为HA (r),输出图象的直方图为HB(s),则它们的关系可由如下过程导出:例如,下图是直方图均衡化后的飞机图片及其直方图,可见其直方图与原图的直方图相比是很均衡的,但必须说明的是,离散情况下不可能作到绝对的一致。
第三章灰度直方图目录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-12.统计hist[k] ; x, y =0,…,M-1, 0,…,N-13.如果需要标准化,则hist[k]/=M*N例:直方图算法实现例: 通过直方图求图像中的灰度的最大、最小和中值。
例:通过直方图求图像的亮度和对比度。
注2:图像的亮度和对比度图像的亮度(brightness ):即图像矩阵的平均值,其值越小越暗。
Brightness=图像的对比度(contrast ):即图像矩阵的均方差(标准差),对比度越大,图像中黑白反差越明显。
Contrast=1100(,)MN y x g x y M N −−==×∑∑11200((,))M N y x M Ng 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);直方图具有很多的优点,直方图能反映图象的概貌,比如图像中有几类目标,目标和背景的分布如何;通过直方图可以直接计算图像中的最大亮度、最小亮度、平均亮度、对比度以及中间亮度等。