OpenCV仍使用cv2.calcHist()函数来查找颜色直方图,只是在指定参数时与之前讲解的有所区别。
image参数指定的原图应从BGR色彩空间转换为HSV色彩空间,实际参数需用方括号括起来。
channels参数设置为[0,1]时,表示同时处理色相和饱和度。
histSize参数设置BINS值为[180,256]时,表示色相为180,饱和度为256。
ranges参数设置为[0,180,0,256]时,表示色相值的取值范围为[0,180],饱和度的取值范围为[0,256]。
cv2.calcHist()函数返回的颜色直方图可直接使用cv2.imshow()函数显示。
示例代码如下。
OpenCV中的二维直方图
import cv2
img=cv2.imread('building.jpg') #打开图像
cv2.imshow('original',img) #显示原图像
img2=cv2.cvtColor(img,cv2.COLOR_BGR2HSV) #转换色彩空间为HSV
hist = cv2.calcHist([img2], [0, 1], None,
[180, 256], [0, 180, 0, 256]) #计算颜色直方图
cv2.imshow('2Dhist',hist) #显示颜色直方图
cv2.waitKey(0)