NumPy的histogram2D()函数用于计算二维直方图,其基本格式如下。
hist,xedges,yedges=np.histogram2D(x,y,bins,range)
参数说明如下。
hist为返回的直方图。
xedges为返回的x的直方图的BINS边界值。
yedges为返回的y的直方图的BINS边界值。
x和y为原图对应通道转换成的一维数组。
bins为BINS的值,如[180,256]。
range为像素值范围,格式为“[[0,180],[0,256]]”
示例代码如下。
NumPy中的二维直方图
import cv2
import numpy as np
img=cv2.imread('building.jpg') #打开图像
cv2.imshow('original',img) #显示原图像
img2=cv2.cvtColor(img,cv2.COLOR_BGR2HSV) #转换色彩空间为HSV
h,s,v=cv2.split(img2)
hist,x,y=np.histogram2d(h.ravel(),s.ravel(),
[180,256],[[0,180],[0,256]]) #计算颜色直方图
cv2.imshow('2Dhist',hist) #显示灰度颜色直方图
import matplotlib.pyplot as plt
plt.imshow(hist,interpolation = 'nearest') #绘制颜色直方图
plt.show() #显示颜色直方图
cv2.waitKey(0)