NumPy的histogram()函数可用于计算直方图,其基本格式如下。
hist,bin_edges=np.histogram(src,bins,range)
参数说明如下。
hist返回的直方图。
bin_edges为返回的灰度级分组数量边界值。
src为原图转换成的一维数组。
bins为灰度级分组数量。
range为像素值范围。
示例代码如下。
test6-4.py:NumPy中的直方图
import cv2
import numpy as np
import matplotlib.pyplot as plt
img=cv2.imread('gate.jpg') #读取图像
cv2.imshow('original',img) #显示原图像
histb,e1=np.histogram(img[0].ravel(),256,[0,256]) #计算B通道直方图
histg,e2=np.histogram(img[1].ravel(),256,[0,256]) #计算G通道直方图
histr,e3=np.histogram(img[2].ravel(),256,[0,256]) #计算R通道直方图
plt.plot(histb,color='b') #绘制B通道直方图,蓝色
plt.plot(histg,color='g') #绘制G通道直方图,绿色
plt.plot(histr,color='r') #绘制R通道直方图,红色
plt.show() #显示直方图