win10+Python3.7.3+OpenCV3.4.1入门学习(十三 直方图处理)————13.1直方图的含义

Python版本是Python3.7.3,OpenCV版本OpenCV3.4.1,开发环境为PyCharm

第13章 直方图处理

直方图是图像处理过程中的一种非常重要的分析工具。直方图从图像内部灰度级的角度对图像进行表述,包含十分丰富而重要的信息。从直方图的角度对图像进行处理,可以达到增强图像显示效果的目的。

13.1 直方图的含义

从统计的角度讲,直方图是图像内灰度值的统计特性与图像灰度值之间的函数,直方图统计图像内各个灰度级出现的次数。从直方图的图形上观察,横坐标是图像中各像素点的灰度级,纵坐标是具有该灰度级(像素值)的像素个数。
例如,有一幅图像如下图所示。该图中只有9个像素点,存在1、2、3、4、5,共5个灰度级。
在这里插入图片描述

统计各个灰度级出现的次数,如下表所示。
在这里插入图片描述

在绘制直方图时,将灰度级作为x轴处理,该灰度级出现的次数作为y轴处理,则可知:
● x轴的数据为x=[1 2 3 4 5]。
● y轴的数据为y=[3 1 2 1 2]。
根据上述关系,可以绘制出如下图所示的折线图(左图)和直方图(右图)一般情况下,我们把左侧的直线图和右侧直方图都称为直方图。
在这里插入图片描述

在实际处理中,图像直方图的x轴区间一般是[0, 255],对应的是8位位图的256个灰度级;y轴对应的是具有相应灰度级的像素点的个数。
例如在下图中,上图是一张图像,下图则是其对应的直方图。图中圆点表示这些像素点会被统计到对应的灰度级上。
在这里插入图片描述

虽然8位的图像都具有256个灰度级(每一个像素可以有256个灰度值),但是属于不同灰度级的像素数量是很不一样的。例如下图,从图中可以看出,图像的不同部分直方图是不一样的。

在这里插入图片描述
有时为了便于表示,也会采用归一化直方图。在归一化直方图中,x轴仍然表示灰度级;y轴不再表示灰度级出现的次数,而是灰度级出现的频率。
例如,针对上图,统计各个灰度级出现的频率:

灰度级出现的频率=灰度级出现的次数/总像素数

在图中共有9个像素,所以统计结果如下表所示。
在这里插入图片描述

在归一化直方图中,各个灰度级出现的频率之和为1。例如,本例中:

在这里插入图片描述

在绘制直方图时,将灰度级作为x轴数据处理,将其出现的频率作为y轴数据处理,则可知:
● x轴的数据为x=[1 2 3 4 5]
● y轴的数据为y=[3/9 1/9 2/9 1/9 2/9]

根据上述关系,可以绘制出如下图所示的归一化直方图。对比上图,可以看到,归一化直方图与直方图在外观上是一致的,只是y轴的标签不同而已。本例中,在直方图内,y轴显示的标签是1、2、3;在归一化直方图中,y轴显示的标签是1/9、2/9、3/9。

在这里插入图片描述

在OpenCV的官网上,特别提出了要注意三个概念:DIMS、BINS、RANGE。
● DIMS:表示在绘制直方图时,收集的参数的数量。一般情况下,直方图中收集的数据只有一种,就是灰度级。因此,该值为1。
● RANGE:表示要统计的灰度级范围,一般为[0, 255]。0对应的是黑色,255对应的是白色。
● BINS:参数子集的数目。在处理数据的过程中,有时需要将众多的数据划分为若干个组,再进行分析。
例如,针对上图中的灰度级,你可能希望将两个像素值作为一组讨论。这样,整个灰度级被划分为三组,具体为{ {1,2} , {3,4} , {5} }。下图所示的是划分前后的直方图情况。
在这里插入图片描述

也可以按照上述方式对灰度图像进行划分。例如,在灰度图像中,将[0, 255]区间内的256个灰度级,按照每16个像素一组划分为子集:
[0, 255]=[0, 15] ∪ [16, 31] ∪…∪[240, 255]

按照上述方式,整个灰度级范围可以划分为16个子集,具体为:
整个灰度级范围=bin1 ∪ bin2 ∪…∪ bin16

子集划分完以后,某灰度图像生成的直方图如下图所示(图中的b1代表bin1,b2代表bin2,以此类推)。

在这里插入图片描述

下面讨论BINS的值:
● 针对上图,在原始图像中,共有5个灰度级,其BINS值为5。在以2个灰度级为一个小组划分子集后,得到3个子集,其BINS值为3。
● 针对灰度图像,灰度级区间为[0, 255],共有256个灰度级,其BINS值为256;在以16个灰度级为一个小组划分子集后,其BINS值为16。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值