灰度直方图
图像处理6灰度直方图和直方图均衡化
图像处理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. 图像分析与检测利用灰度直方图还可以进行图像的分析与检测。
第五章 遥感图像处理—图像增强
特征;其余三个分量与地物特征没有明确的对应关系。
七、多元信息复合
遥感图像信息融合(Fusion)是将多源遥感数据在统一的 地理坐标系中,采用一定的算法生成一组新的信息或合
其中:
k ( g 'max g 'min ) /( gmax gmin ) 255/ 52 4.9
b g 'ij kgij 0 49 49
2、非线性拉伸
(1)指数变换
xb be
(2)对数变换
axa
c
xb b度进行分层,每一层所包含的亮度值范围可以不
同。
图像密度分割原理可以按如下步骤进行:
(1)求图像的极大值dmax和极小值dmin; (2)求图像的密度区间ΔD = dmax-dmin + 1; (3)求分割层的密度差Δd =ΔD/n ,其中 n为需分割的层数;
(4)求各层的密度区间;
(5)定出各密度层灰度值或颜色。
减法运算可以增加不同地物间光谱反射率以及在 两个波段上变化趋势相反时的反差。不同时相同 一波段图像相减时,可以提取波段间的变化信息。
T M 4 影 像
T M 3 影 像
TM4-TM3影像
87 年 影 像
92 年 影 像 变化监测结果影像
(二)加法运算
B= i /m
i=1 m
加法运算可以加宽波段,如绿色波段和红色波 段图像相加可以得到近似全色图像;而绿色波 段,红色波段和红外波段图像相加可以得到全 色红外图像。
-1 -2 -1 0 0 0 1 2 1 1 2 0 -2 1 0 -1
第三章.图像灰度直方图变换
第三章图像灰度直方图变换在数字图像处理中,灰度直方图是最简单且最有用的工具,可以说,对图像的分析与观察直到形成一个有效的处理方法,都离不开直方图。
直方图的定义:一个灰度级别在范围[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请对其进行灰度直方图的均衡化处理。
灰度直方图
第二章
一、灰度直方图的定义
3. 离散图像灰度直方图表明该灰度级上有多少个象素
H ( D) A( D) A( D 1)
H ( D) lim
D
A( D) A( D D) d A( D) D dD
第二章
一、灰度直方图的定义
4. 彩色图像二维直方图
坐标(Dx,Dy)处的值是指在红光图像中具有灰度值Dx,同时在蓝 光图像中具有灰度值Dy的象素对个数。
255
3.通过除以图像的面积来归一化灰度图像可以得到概率密度函数 (PDF)--与图像本身的象素个数无关 4.对面积函数进行同样的归一化处理可得到图象的累积分布函数 (CDF) 5.图像直方图为不连接区域直方图之和
第二章
三、灰度直方图的应用
1. 数字化参数
观察直方图可
以看出不合适的 数字化
第二章:灰度直方图
一、灰度直方图的定义 二、灰度直方图的性质 三、灰度直方图的应用
第二章
一、灰度直方图的定义
1.灰度直方图是灰度级的函数 2. 连续图像灰度直方图是阀值面积函数的导数的负值
A( D) A( D D) d H ( D) lim A( D) D D dD
第二章
三、灰度直方图的应用
2. 边界阈值选择(物体边界和面积的确定)
简单物体面积的 确定(见灰度直方 图的性质)
选取146为阀值点的二值化
第二章
三、灰度直方图的应用 3. 综合光密度、灰度级平均值
IOD是反映图像质量的一种有用度量
IOD可以通过图像的直方图求得
直方图
j 0 j 0 k k
nj n
乘以n,再四舍五 入取整
44
说明
由于数字图像灰度取值的离散性,通过四 舍五入使得变换后的灰度值出现了归并现 象,从而致使变换后的图像并非完全均匀 分布,但是相比原始直方图要均匀得多
直方图修正
2.直方图规定化/直方图匹配 在某些情况下,并不一定需要具有均匀直 方图的图像,有时需要具有特定的直方图 的图像,以便能够增强图像中某些灰度级。 直方图规定化方法就是针对上述思想提出 来的。 直方图规定化是使原图像灰度直方图变成 规定形状的直方图而对图像作修正的增强 方法
0.89
0.95 0.98 1.00
6/7
1 1 1
s3=6/7
985
0.24
s4=1
448
0.11
41
例:
原图像的直方图
均衡后图像的直方图
42
例:直方图均衡化示例
43
例:
思考问题: 若在原图像一行上连续8个像素的灰度值分 别为:0、1、2、3、4、5、6、7,则均衡 后,对应的灰度值为多少?
46
直方图规定化
可见,它是对直方图均衡化处理的一种有 效的扩展。直方图均衡化处理是直方图规 定化的一个特例 对于直方图规定化,下面仍从灰度连续变 化的概率密度函数出发进行推导,然后推 广出灰度离散的图像直方图规定化算法
47
直方图规定化
假设pr(r)和pz(z)分别表示已归一化的原始 图像灰度分布的概率密度函数和希望得到 的图像的概率密度函数 首先对原始图像进行直方图均衡化,即求 变换函数:
H Pi log2 Pi
i 0 L 1
17
灰度直方图
边界阈值选择
轮廓线提供了一个确立图像中简单物体的边界的 有效的方法。使用轮廓线作为边界的技术被称为 阈值化。 假定一幅图背景是深色的,其中有一个浅色的物 体。物体中的浅色像素产生了直方图上的右峰, 而背景中大量的灰度级产生了直方图上的左峰。 物体边界附近具有两个峰值之间灰度级的像素数 目相对较少,从而产生了两峰之间的谷。选择谷 作为灰度阈值将得到合理的边界。
直方图均衡化
直方图均衡化方法的基本思想是,对在图 像中像素个数多的灰度级进行展宽,而对 像素个数少的灰度级进行缩减。从而达到 清晰图像的目的(增强图像的整体对比 度)。 直方图均衡化处理的中心思想是把原始图 像的灰度直方图从比较集中的某个灰度区 间变成在全部灰度范围内的均匀分布。
直方图匹配(规定化)
对于两峰之间的最低点的灰度级作为阈值来确定边界是最 适合的。直方图是面积函数的导数。在谷底的附近,直方 图的值相对较小,意味着面积函数随阈值灰度级的变化很 缓慢。如果我们选择谷底处的灰度作为阈值,将可以使其 对物体的边界的影响达到最小。如果我们试图测量物体的 面积,选择谷底处阈值将使测量对于阈值灰度变化的敏感 降低到最小。
直方图均衡化校正不具备交互作用特性, 而直方图规定化校正在运用均衡化原理的 基础上,向人们提供了根据给定直方图作 图像增强的手段。 指定希望处理的图像所具有的直方图形状, 这种用于产生处理后又特殊直方图的图像 方法,叫做直方图匹配或直方图规格化处 理。
特点:
直方图均衡化的优点是能自动的增强整体 图像的对比度,但是它的具体增强效果却 不易控制,处理的结果总是得到全局均衡 化的直方图。 直方图规定化可以有选择的增强某个灰度 值范围内的对比度或使图像灰度值的分布 满足特的事图 像中该灰度级的像素个数。即:横坐标表 示灰度级,纵坐标表示图像中该灰度级出 现的频率(对数字图像即指像素的个数)。
灰度直方图
第三章灰度直方图目录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);直方图具有很多的优点,直方图能反映图象的概貌,比如图像中有几类目标,目标和背景的分布如何;通过直方图可以直接计算图像中的最大亮度、最小亮度、平均亮度、对比度以及中间亮度等。
图像灰度直方图
图像灰度直⽅图图像灰度直⽅图 图像是由像素点构成的,每个像素点的值代表着该点的颜⾊(灰度图或者彩⾊图)。
直⽅图就是对图像中的这些像素点的值进⾏统计,得到⼀个统⼀的整体的灰度概念。
优点:可以清晰了解图像的整体灰度分布,对于后⾯依据直⽅图处理图像来说⾄关重要。
⼀般情况下直⽅图都是灰度图像,直⽅图x轴是灰度值(⼀般0~255),y轴是图像中每⼀个灰度级对应的像素点的个数。
灰度级:正常情况下就是0-255共256个灰度级,从⿊⼀直到⽩(也有可能统计其中的某部分灰度范围),那么每⼀个灰度级对应⼀个数值代表该灰度对应的点数⽬。
也就是说直⽅图其实就是⼀个1*m(灰度级)的⼀个数组⽽已。
但是有的时候不希望逐个灰度的递增,⽐如现在要求20个灰度⼀起作为⼀个灰度级来画直⽅图,这个时候可能只需要1*(m/20)这样⼀个数组就够了。
那么这⾥的20就是直⽅图的间隔宽度了。
Opencv给提供的函数是cv2.calcHist(),该函数有5个参数:image输⼊图像,传⼊时应该⽤中括号[]括起来channels::传⼊图像的通道,如果是灰度图像,那就不⽤说了,只有⼀个通道,值为0,如果是彩⾊图像(有3个通道),那么值为0,1,2,中选择⼀个,对应着BGR各个通道,⽤[]传⼊。
mask:掩膜图像。
如果统计整幅图,那么为none。
如果要统计部分图的直⽅图,就得构造相应的炎掩膜来计算。
histSize:灰度级的个数,需要中括号,⽐如[256]ranges:像素值的范围,通常[0,256],有的图像如果不是0-256,⽐如说你来回各种变换导致像素值负值、很⼤,则需要调整后才可以。
除Opencv外,numpy也有函数⽤于统计直⽅图的 函数np.histogram() 函数np.bincount() 这三个⽅式的传⼊参数基本上差不多,不同的是opencv⾃带的需要中括号括起来。
测试案例:import cv2import numpy as npimport matplotlib.pyplot as pltimg = cv2.imread('02.jpg', 0)#直接读为灰度图像#opencv读取⽅法cv2.calcHist(速度最快)#图像,通道[0]-灰度图,掩膜-⽆,灰度级,像素范围hist_cv = cv2.calcHist([img], [0], None, [256], [0,256])#numpy⽅法读取np.histogram()hist_np,bins = np.histogram(img.ravel(), 256, [0,256])#numpy的另⼀种读取⽅法np.bincount()(速度=10倍⽅法2)hist_np2 = np.bincount(img.ravel(), minlength=256)plt.subplot(221), plt.imshow(img, 'gray')plt.subplot(222), plt.plot(range(256), hist_cv, 'r')plt.subplot(223), plt.plot(range(256), hist_np, 'b')plt.subplot(224), plt.plot(hist_np2)plt.show() opencv的直⽅图函数中掩膜的使⽤,这个掩膜就是⼀个区域⼤⼩,表⽰直⽅图统计就是这个区域的像素统计。
数字图像处理(直方图).
An
Combining
DFRT( n )
Renewed output images An exp(j n ) Cn
IDFRT( n )
Several input images Rn an exp(jn )
1 1 an , 0 n n n Updated input images a0 exp(j0 ) a0
15
按列统计的直方图
histc(pascal(3),1:6) produces the array [3 1 1; 0 1 0; 0 1 1; 0 0 0; >> pascal(3) 0 0 0; ans = 0 0 1]
1 1 1 1 2 3 1 3 6
每列目标数据的个数 统计
16
其他类型的统计图
条状图:bar x = 1:5; y = [0.2,0.3,0.1,0.8,0.9; 0.5,0.6,0.2,0.7,0.1]; bar(x,y');
20
其他类型的统计图
累加式条状图:barh rand('state',0); figure; barh(rand(10,5),'stacked'); colormap(cool)
6
彩色图像直方图
axes(‘Position’,*0.1,0.1,0.8,0.2+);% 生成坐标轴 stem(0:255,h1,'Marker','None','Color','r'); set(gca,'YColor','r','Xlim',[0,255]); axes('Position',[0.1,0.3,0.8,0.2]); stem(0:255,h2,'Marker','None','Color',[0,0.6,0]); set(gca,'YColor',[0,0.6,0],'Ytick',[0.005,0.01],'Xlim',[0,255]); axes('Position',[0.1,0.5,0.8,0.2]); stem(0:255,h3,'Marker','None','Color','b'); set(gca,'YColor','b','Ytick',[0.01,0.02],'Xlim',[0,255]);
第二章 灰度直方图
D
0.8 0.6 0.4 0.2 -4 -2 0 2 4
D( x) e
x2
x
40
H(D)
30
20
10
0
0.2
0.4
0.6ቤተ መጻሕፍቲ ባይዱ
0.8
1
灰度级(D)
2) 二维情况
考察的图像是圆对称高斯脉冲函数:
D(r,q ) e
r2
0 r ,0 q 2 p
灰度级为常数P的轮廓线是半径为r(P)的圆:
N :图像的像素总数
偏暗的图像及其直方图:
偏亮的图像及其直方图:
动态范围偏小的图像 及其直方图:
动态范围正常的图像 及其直方图:
说明:
数字图像与其直方图不是一一对应的关系
另一种方式的定义:
将一副连续图像中具有灰度级D的所有轮廓线 所包括的面积,称为它的阈值面积函数A(D)。则 直方图可定义为:
i 1 j 1
k 0 k 0
NL NS
255
255
DH ( D )dD
0
所以有:
D( x, y )dxdy DH ( D)dD
0 0 0
a b
如果图像中的物体被阈值灰度级为T的边界勾划出来,则物体 内的IOD为:
IOD (T ) DH ( D )dD
T
边界阈值选择
使用轮廓线确定简单物体的边界的方法,称为阈值化。对 物体与背景有较强对比的景物的分割特别有用。例如双峰直 方图。
频 率
0
T 阈值点
255 灰度
如果阈值对应于直方图的谷,阈值从T增加到T+ ΔT, 只会导致面积函数的略微变化。因此可以把阈值的选择误 差对面积测量的影响降到最低。
灰度直方图绘制及直方图均衡化
昆明理工大学(数字图像处理)实验报告 实验名称: 灰度直方图绘制及直方图均衡化 专 业: 电子信息科学与技术 姓 名: 学 号: 成 绩:[实验目的]1、加强对灰度直方图及直方图均衡化的理解。
2、掌握直方图均衡化方法。
[实验内容]1、编程实现图像的灰度直方图。
2、实现直方图均衡化。
[实验原理]灰度直方图:1、直方图概念:灰度直方图表示图像中每种灰度出现的频率。
2、直方图的作用: 反映一幅图像的灰度分布特性3、直方图的计算: nk 为图像中出现rk 级灰度的像素数,n 是图像像素总数,而 nk/n 即为频数。
直方图均衡化:1、算法思想:通过函数变换,对在图像中像素个数多的灰度 级进行展宽,而对像素个数少的灰度级进行缩减。
从而达 到清晰图像的目的。
2、变换后每一个r 都对应一个s ,变换函数须满足二个条件 :(1)T 单值单增函数。
(2)对 有 则有: [实验步骤]离散情况下的直方图均衡化的算法:1)、列出原始图像的灰度级2)、统计各灰度级的像素数目 10-≤≤L r 1)(0-≤≤L r T 10)(1-≤≤=-L s s T r 1,...2,1,010,)(-=≤≤=l k r Nn r P k k k3)、计算原始图像直方图各灰度级的频数4)、计算累积分布函数5)、计算映射后的输出图像的灰度级。
6)、用的映射关系修改原始图像的灰度级,从而获得直方图近似为均匀分布的输出图像。
创建相应的菜单并建立相应的消息响应函数:添加一个灰度直方图显示框。
调出资源视图窗口,添加ID为IDD_DIALOG4的对话框资源,设计如图:创建对话框类CDialog_ZFT并按下表关联对应变量:资源类型资源ID 关联变量类型图片控件IDC_zft CStatic绘制文本框IDOK intvoid CDialog_ZFT::OnOK(){CWnd *pwnd=GetDlgItem(IDC_zft);CDC *mydc=pwnd->GetDC();for(int i=0;i<count;i++){mydc->MoveTo(i+10,220);mydc->LineTo(i+10,220-data[i]*180/m_fmax);}/**************直方图****************/void CDLView::OnZft(){// TODO: Add your command handler code here if(m_DibHead==NULL){MessageBox("请打开一幅图像");return;}long w,h;w=m_DibHead->biWidth;h=m_DibHead->biHeight;int i ,j;float h1[256],h2[256];float fmax=0.0;for(i=0;i<256;i++)h1[i]=0;for(i=0;i<h;i++){for(j=0;j<w;j++){h1[*(m_Image+i*w+j)]++;}}for(i=0;i<256;i++){h2[i]=h1[i]*1.0/w/h;if(fmax<h2[i])fmax=h2[i];}CDialog_ZFT zft;zft.data=h2;zft.count=256;zft.m_fmax=fmax;zft.DoModal();}/**************直方图均衡化***************/zftjh(unsigned char *lpDib,long lWidth,long lHeight) {unsigned char *lpsrc;long lresult(0);long i,j;unsigned char bMap[256];long lCount[256];for(i=0;i<256;i++)lCount[i]=0;for(i=0;i<lHeight;i++)for(j=0;j<lWidth;j++){lpsrc=lpDib+i*lWidth+j;lCount[*lpsrc]++;}for(i=0;i<256;i++){lresult=0;for(j=0;j<=i;j++)lresult+=lCount[j];bMap[i]=(lresult*255)/lHeight/lWidth;}for(i=0;i<lHeight;i++)for(j=0;j<lWidth;j++){lpsrc=lpDib+i*lWidth+j;*lpsrc=bMap[*lpsrc];}}void CDLView::OnZftjunh(){// TODO: Add your command handler code hereif(m_DibHead->biBitCount!=8){MessageBox("当前版本仅支持256色位图的操作!","系统提示!",MB_ICONINFORMATION|MB_OK);return;}zftjh(m_Image,m_DibHead->biWidth,m_DibHead->biHeight);Invalidate();}[实验结果]原图均衡化后[实验总结]通过对比图像可知,变换后直方图趋向平坦,灰级减少,灰度合并。
图像灰度直方图
2.4
图像灰度直方图
3.一幅图像分成多个区域,多个区域的直 方图之和即为原图像的直方图。
图像的直方图H(i) = 区域Ⅰ的直方图H1(i) + 区域Ⅱ的直方图H2(i)
2.4
图像灰度直方图
三、直方图的应用
1 . 数字化参数(判断量化是否恰当)
直方图给出了一个简单可见的指示,用 来判断一幅图象是否合理的利用了全部被允 许的灰度级范围。一般一幅图应该利用全部 或几乎全部可能的灰度级,否则等于增加了 量化间隔。丢失的信息将不能恢复。
最常用的方式是将图像各像素用一维或二维数 组相应的各元素加以存储。除此之外,还有下 列方式。
2.6图像的数据结构与特征
1.组合方式 组合方式是一个字长存放多个像素灰度值的方 式。它能起到节省内存的作用,但导致计算量 增加,使处理程序复杂。
图像处理 解压 压缩
组合方式
2.6图像的数据结构与特征
2.6图像的数据结构与特征
2.特征提取 获取图像特征信息的操作称作特征提取。它 作为模式识别、图像理解或信息量压缩的基础 是很重要的。 通过特征提取,可以获得特征构成的图像 (称作特征图像)和特征参数。
2.6图像的数据结构与特征
3.特征空间 对于由图像中提取出的特征量,利用特征空 间这一定义,可应用于模式分类等方面。把从 图像提取的m个特征量y1,y 2,…,ym,用m维 的向量Y=[y1 y2…ym]t表示称为特征向量。另 外,对应于各特征量的m维空间叫做特征空间, 那么特征向量Y就可作为这个特征空间的点来 表示。
在对输入图像处理时,计算某一输出像素 JP(i,j)值由输入图像IP(i,j)像素的小邻域 N(i,j)中的像素值确定。这种处理称为局部处 理,或者称邻域处理。局部处理的计算表达式 为
图像灰度直方图
灰度级数反映了一幅数字图像的亮度层次多少。 图像数据的层次越多视觉效果就越好。
一般来说,G 2g ,g就是表示存储图像像素灰度 值所需的比特位数。
若 一 幅 数 字 图 像 的 量 化 灰 度 级 数 G=256=28 级 , 灰 度取值范围一般是0~255的整数,由于用8bit就能表示灰 度图像像素的灰度值,因此常称8 bit 量化。
B1 G1 R1 B2 G2 R2
: Bn Gn Rn
对于真彩色图,3个字节才能表示1个像素.
2.4图像灰度直方图
2.4.1 概念 一、定义
灰度直方图反映的是一幅图像中各灰度级像素出现 的频率。以灰度级为横坐标,纵坐标为灰度级的频率, 绘制频率同灰度级的关系图就是灰度直方图。它是图像 的一个重要特征,反映了图像灰度分布的情况。
2.3图像数字化
图像数字化是将一幅画面转化成计算机能处理的形式—— 数字图像的过程。
模拟图像
数字图像
正方形点阵
2.3.1采样
将连续的图像空间上变换成离散点的操作称为采样。 采样孔b)
(a) 正方形网格; (b) 正六角形网格
采样间隔和采样孔径的大小是两个很重要的参 数。
采样间隔越小, 所得图像像素数越 多,空间分辨率高, 图像质量好,但数
据量大。
量化等级越多,所 得图像层次越丰富,灰 度分辨率高,图像质量 好,但数据量大;
量化等级越少,图 像层次欠丰富,灰度分 辨率低,会出现假轮廓 现象,图像质量变差, 但数据量小。
但在极少数情况下 对固定图像大小时,减 少灰度级能改善质量, 产生这种情况的最可能 原因是减少灰度级一般 会增加图像的对比度。 例如对细节比较丰富的 图像数字化。
下图是一幅图像的灰度直方图。
02 第三章 灰度直方图
11
3.3 直方图的用途 直方图的用途 3.3.1 数字化参数
直方图给出了一个简单可见的指示, 直方图给出了一个简单可见的指示,用 来判断一幅图象是否合理地利用了全部被允 是否合理地利用了 来判断一幅图象是否合理地利用了全部被允 许的灰度级范围。 许的灰度级范围。一般一幅数字图象应该利 用全部或几乎全部可能的灰度级, 如图3.1。 用全部或几乎全部可能的灰度级 , 如图 。 否则等于增加了量化间隔。 否则等于增加了量化间隔。一旦被数字化图 象的级数少于256, 丢失的信息 ( 除非重新 象的级数少于 , 丢失的信息( 数字化)将不能恢复。 见下页典型直方图。 数字化) 将不能恢复。 见下页典型直方图。
26
2. 有一幅在灰色背景下的黑白足球的图 有一幅在灰色背景下的黑白足球的图 灰色背景下的黑白足球 象,直方图如下所示。足球的直径为230mm, 直方图如下所示。足球的直径为 , 求其象素间距。 求其象素间距。 象素间距 [0 520 920 490 30 40 5910 24040 6050 80 20 80 440 960 420 0]
29
作业
步骤1: 选一幅彩色图转换成灰度图, 步骤 : 选一幅彩色图转换成灰度图 , 或 直接选一幅灰度图,画出它的直方图, 直接选一幅灰度图,画出它的直方图,选一个 合适的阈值,将该图像二值化。 合适的阈值,将该图像二值化。 步骤2: 将该图像作水平方向( 步骤 : 将该图像作水平方向 ( 或垂直方 或斜方向) 点或2点移位 向、或斜方向)的1点或 点移位,形成第二幅 点或 点移位, 图像。 图像。 步骤3:将两幅图像做减法,分析结果。 步骤 :将两幅图像做减法,分析结果。 步骤4:如果位移量较大,结果会如何? 步骤 :如果位移量较大,结果会如何?
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.灰度直方图
灰度直方图(histogram)是灰度级的函数,它表示图象中具有每种灰度级的象素的个数,反映图象中每种灰度出现的频率。
如下图所示,灰度直方图的横坐标是灰度级,纵坐标是该灰度级出现的频率,是图象的最基本的统计特征。
从概率的观点来理解,灰度出现的频率可看作其出现的概率,这样直方图就对应于概率密度函数pdf(probability density function),而概率分布函数就是直方图的累积和,即概率密度函数的积分,如下图所示:
若直接从代表每种灰度的象素数目的直方图来观察,常用如下的表示:
dr
r dP r p dr r p r P r
)()(,
)()(0
=
=⎰∑⎰⎰⎰===≈
===
==
=k
i i
k k k k k r
r
n
n
r P n n r p n r n A dA
r p dr dr
r H A r P A dr
r dA A r H r p dr
r H A dr r H r A 00
0000255
00
)()()(1)(1)(,/)()()()()(,
)()(,而概率分布函数,则概率密度的象素数为,灰度为若记象素总数为,时,在离散情况下,取概率密度象素总数一幅图象的总面积,或
灰度直方图的计算是很简单的,依据定义,若图象具有L(通常L=256,
即8位灰度级)级灰度,则大小为MxN的灰度图象f(x,y)的灰度直方图hist[0…L-1]可用如下计算获得:
1. 1.初始化 hist[k]=0 ; k=0,…,L-1
2. 2.统计 hist[f(x,y)]++ ; x, y =0,…,M-1, 0,…,N-1
3. 3.标准化 hist[f(x,y)]/=M*N
2.直方图均衡化
直方图均衡化是通过灰度变换将一幅图象转换为另一幅具有均衡直方图,即在每个灰度级上都具有相同的象素点数的过程。
设灰度变换s=f(r)为斜率有限的非减连续可微函数,它将输入图象A(x,y)
转换为输出图象B(x,y),输入图象的直方图为H
A (r),输出图象的直方图为H
B
(s),
则它们的关系可由如下过程导出:
例如,下图是直方图均衡化后的飞机图片及其直方图,可见其直方图与原图的直方图相比是很均衡的,但必须说明的是,离散情况下不可能作到绝对的一致。
∑
⎰⎰=======
k
i i
k k m r
A m r A m A m
B n
n r P r P R r f dr r H A r P r P R dr r H A R r f r H A R r f s H 00
0000
)(,)()()(1)(,)()()()()(')(其中离散情况下,数(概率分布函数)。
变换函数是累积分布函使直方图均衡化的灰度结论:其中常数,即:一比例常数时,它就为的分子和分母函数只差由此可见,当上式中)
(,'))(('))
(()(')()()()()(111s f r dr
df
f s f f s f H r f r H dr ds r H s H dr
r H ds s H A A A B A B ---===
===其中故面积元相等:过灰度变换后对应的小根据直方图的含义,经
3.直方图规范化
直方图规范化是指将一幅图象通过灰度变换后,使其具有特定的直方图形式,如使图象与某一标准图象具有相同的直方图,或使图象具有某一特定函数形式的直方图。
(D)的图象C(x,y)。
首如下图所示,希望将图象A(x,y)变换为具有特定直方图H
3
先利用直方图均衡化将图象A(x,y)变换为具有平坦直方图的图象B(x,y),再利用第二个灰度变换将B(x,y)变换为C(x,y):
4.色彩直方图
色彩直方图是高维直方图的特例,它统计色彩的出现频率,即色彩的概率分布信息。
通常这需要一定的量化过程,将色彩分成若干互不重叠的种类。
一般不直接在RGB 色彩空间中统计,而是在将亮度分离出来后,对代表色彩部分的信息进行统计,如在HSI 空间的HS 子空间、YUV 空间的UV 子空间,以及其它反映人类视觉特点的彩色空间表示中进行。
例如,下图是统计肤色分布情况的例子。
)]},([{)]},([{),()()/()()],([),(,)],([),(1133133y x A P P y x A f g y x C r P R R r P r g y x C P R y x B y x B g y x C m m m --===∴==故的反函数
是且Θ
直方图英文名称是(HISTOGRAM),相机上显示的直方图和PHOTOSHOP使用的直方图都是灰度直方图,从图形上说,它是一个二维图,,用坐标表示。
横坐标表示图象中各个像素点的灰度级。
(0到255个级别,一般人眼能够分辨的只有32个级别,人眼对光的强度变化非常敏感,而对颜色的变化就比较弱,目前,流行的视频压缩软件都是应用这一原理,比如RM)它是多种空间域处理技术的基础。
直方图操作能够有效用于图像增强;提供有用的图像统计资料,其在软件中易于计算,适用于商用硬件设备。
纵坐标为各个灰度级上图象各个像素点出现的次数或概率.各个软件细分程度不同。
1.表征了图像的一维信息。
只反映图像中像素不同灰度值出现的次数(或频数)而未反映像
素所在位置。
2.与图像之间的关系是多对一的映射关系。
一幅图像唯一确定出与之对应的直方图,但不同图像可能有相同的直方图。
3.子图直方图之和为整图的直方图。
灰度直方图
以通过直方图的状态来评断图像的一些性质:明亮图像的直方图倾向于灰度级高的一侧;低对比度图像的直方图窄而集中于灰度级的中部,高对比度图像的直方图成分覆盖的灰度级很宽而且像素的分布没有不太均匀,只有少量的垂线比其他高许多。
直观上来说:若一幅图像其像素占有全部可能的灰度级并且分布均匀,则这样的图像有高对比度和多变的灰度色调。
从概率的观点来理解,灰度出现的频率可看作其出现的概率,这样直方图就对应于概率密度函数(probabilitydensityfunction),而概率分布函数就是直方图的累积和,即概率密度函数的积分。