cv2.calcHist()函数的mask参数用于指定掩模图像。掩模图像为黑底,其中的白色区域可视为透明区域,将其覆盖到原图像上,原图像中可显示出来的部分为掩模结果图像。指定掩模图像时,calcHist()函数只计算掩模结果图像的直方图。
示例代码如下。
应用掩模的直方图
import cv2
import numpy as np
import matplotlib.pyplot as plt
img=cv2.imread('gate.jpg') #读取图像
w,h,d=img.shape
mask=np.zeros((w,h), np.uint8) #按原图大小创建一幅黑色图像
w1=np.int0(w/4)
w2=np.int0(w0.75)
h1=np.int0(h/4)
h2=np.int0(h0.75)
mask[w1:w2,h1:h2]=255 #设置掩模白色区域
cv2.imshow('mask',mask) #显示掩模图像
histb=cv2.calcHist([img],[0],mask,[256],[0,255]) #计算B通道直方图
histg=cv2.calcHist([img],[1],mask,[256],[0,255]) #计算G通道直方图
histr=cv2.calcHist([img],[2],mask,[256],[0,255]) #计算R通道直方图
plt.plot(histb,color='b') #绘制B通道直方图,蓝色
plt.plot(histg,color='g') #绘制G通道直方图,绿色
plt.plot(histr,color='r') #绘制R通道直方图,红色
plt.show() #显示直方图