13.3 直方图的绘制:使用opencv统计直方图的信息
上一节讲了绘制直方图的一种方法: 直接使用matplotlib.pyplot的库函数hist来绘制直方图。
这一节讲绘制直方图的另一种方法: 首先使用opencv的库函数calcHist()计算直方图的信息。 然后调用matplotlib.pyplot的库函数绘制直方图。
先来回顾一下直方图是什么?
横坐标与纵坐标是一一对应的。横坐标都是从0到255。我们只要知道纵坐标的序列就能绘图。
一、opencv提供的计算直方图信息的函数 opencv提供了calcHist()函数用来计算纵坐标的数组。
(1) hist //直方图
返回的是一个256行一列的二维数组。
(2) images
(3) channels
如果是灰度图像,直接写[0]就可以了。如果是彩色图像,可以指定计算哪个通道。
(4) mask
如果图像比较大,只想计算某一部分的直方图。那就需要用掩码。后面章节会单独介绍。
(5) histSize
(6) ranges
(7) accumulate
如果是好几副图像,可能要计算一组图像的直方图。 这是一个可选参数,可以有可以没有。
举例:
因为是灰度图像,所以写了[0]
二、calcHist()函数结合matplotlib.pyplot的库函数来绘制直方图
plot函数的使用见笔记:https://blog.****.net/pengchengliu/article/details/87858644
下面就可以使用这两个函数绘制直方图了。
例1:灰度图像绘制直方图
结果:
例2:彩色图像绘制三个通道的直方图
结果:
|