© Fu Xianjun. All Rights Reserved.
图像直方图
图像直方图是图像内灰度值的统计特性与图像灰度值之间的函数,直方图统计图像内各个灰度级出现的次数。
例如,该图中只有9个像素点,存在1、2、3、4、5,共5个灰度级。
统计各个灰度级出现的次数:
在绘制直方图是,将灰度级作为x轴的处理,该灰度级出现的次数作为y轴处理,则可知:
- x轴的数据为 x = [ 1 2 3 4 5 ]。
- y轴的数据为 y = [ 3 1 2 1 2 ]。
直方图绘制
1、hist()函数
此函数的作用是根据数据源和灰度图级分组绘制直方图,其函数语句格式为:
matplotlib.pyplot.hist(X,BINS)
- X:数据源,必须是一维的。图像通常是二维的,需要使用ravel()函数将图像处理为一维数据源以后,再作为参数使用。
- BINS:表示灰度级的分组情况。
函数racel()的作用是将二维数组降维成一维数组。有图像a,其值为:
21 | 34 | 63 |
---|---|---|
142 | 231 | 59 |
67 | 138 | 74 |
使用函数racel()对a进行处理:b = a.ravel() , 可以得到b为:
21 | 34 | 63 | 142 | 231 | 59 | 67 | 138 | 74 |
---|
【例】 使用cv2.hist()绘制直方图。
编写代码如下(示例):
import cv2
import matplotlib.pyplot as plt
img1=cv2.imread("hj.jpg",